diff options
Diffstat (limited to 'fs/ubifs/debug.c')
| -rw-r--r-- | fs/ubifs/debug.c | 66 |
1 files changed, 39 insertions, 27 deletions
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index 7186400750e7..510ffa0bbda4 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c | |||
| @@ -101,21 +101,24 @@ static void sprintf_key(const struct ubifs_info *c, const union ubifs_key *key, | |||
| 101 | if (c->key_fmt == UBIFS_SIMPLE_KEY_FMT) { | 101 | if (c->key_fmt == UBIFS_SIMPLE_KEY_FMT) { |
| 102 | switch (type) { | 102 | switch (type) { |
| 103 | case UBIFS_INO_KEY: | 103 | case UBIFS_INO_KEY: |
| 104 | sprintf(p, "(%lu, %s)", key_inum(c, key), | 104 | sprintf(p, "(%lu, %s)", (unsigned long)key_inum(c, key), |
| 105 | get_key_type(type)); | 105 | get_key_type(type)); |
| 106 | break; | 106 | break; |
| 107 | case UBIFS_DENT_KEY: | 107 | case UBIFS_DENT_KEY: |
| 108 | case UBIFS_XENT_KEY: | 108 | case UBIFS_XENT_KEY: |
| 109 | sprintf(p, "(%lu, %s, %#08x)", key_inum(c, key), | 109 | sprintf(p, "(%lu, %s, %#08x)", |
| 110 | (unsigned long)key_inum(c, key), | ||
| 110 | get_key_type(type), key_hash(c, key)); | 111 | get_key_type(type), key_hash(c, key)); |
| 111 | break; | 112 | break; |
| 112 | case UBIFS_DATA_KEY: | 113 | case UBIFS_DATA_KEY: |
| 113 | sprintf(p, "(%lu, %s, %u)", key_inum(c, key), | 114 | sprintf(p, "(%lu, %s, %u)", |
| 115 | (unsigned long)key_inum(c, key), | ||
| 114 | get_key_type(type), key_block(c, key)); | 116 | get_key_type(type), key_block(c, key)); |
| 115 | break; | 117 | break; |
| 116 | case UBIFS_TRUN_KEY: | 118 | case UBIFS_TRUN_KEY: |
| 117 | sprintf(p, "(%lu, %s)", | 119 | sprintf(p, "(%lu, %s)", |
| 118 | key_inum(c, key), get_key_type(type)); | 120 | (unsigned long)key_inum(c, key), |
| 121 | get_key_type(type)); | ||
| 119 | break; | 122 | break; |
| 120 | default: | 123 | default: |
| 121 | sprintf(p, "(bad key type: %#08x, %#08x)", | 124 | sprintf(p, "(bad key type: %#08x, %#08x)", |
| @@ -364,8 +367,8 @@ void dbg_dump_node(const struct ubifs_info *c, const void *node) | |||
| 364 | le32_to_cpu(mst->ihead_lnum)); | 367 | le32_to_cpu(mst->ihead_lnum)); |
| 365 | printk(KERN_DEBUG "\tihead_offs %u\n", | 368 | printk(KERN_DEBUG "\tihead_offs %u\n", |
| 366 | le32_to_cpu(mst->ihead_offs)); | 369 | le32_to_cpu(mst->ihead_offs)); |
| 367 | printk(KERN_DEBUG "\tindex_size %u\n", | 370 | printk(KERN_DEBUG "\tindex_size %llu\n", |
| 368 | le32_to_cpu(mst->index_size)); | 371 | (unsigned long long)le64_to_cpu(mst->index_size)); |
| 369 | printk(KERN_DEBUG "\tlpt_lnum %u\n", | 372 | printk(KERN_DEBUG "\tlpt_lnum %u\n", |
| 370 | le32_to_cpu(mst->lpt_lnum)); | 373 | le32_to_cpu(mst->lpt_lnum)); |
| 371 | printk(KERN_DEBUG "\tlpt_offs %u\n", | 374 | printk(KERN_DEBUG "\tlpt_offs %u\n", |
| @@ -1589,7 +1592,7 @@ static struct fsck_inode *add_inode(struct ubifs_info *c, | |||
| 1589 | 1592 | ||
| 1590 | if (inum > c->highest_inum) { | 1593 | if (inum > c->highest_inum) { |
| 1591 | ubifs_err("too high inode number, max. is %lu", | 1594 | ubifs_err("too high inode number, max. is %lu", |
| 1592 | c->highest_inum); | 1595 | (unsigned long)c->highest_inum); |
| 1593 | return ERR_PTR(-EINVAL); | 1596 | return ERR_PTR(-EINVAL); |
| 1594 | } | 1597 | } |
| 1595 | 1598 | ||
| @@ -1668,16 +1671,18 @@ static struct fsck_inode *read_add_inode(struct ubifs_info *c, | |||
| 1668 | ino_key_init(c, &key, inum); | 1671 | ino_key_init(c, &key, inum); |
| 1669 | err = ubifs_lookup_level0(c, &key, &znode, &n); | 1672 | err = ubifs_lookup_level0(c, &key, &znode, &n); |
| 1670 | if (!err) { | 1673 | if (!err) { |
| 1671 | ubifs_err("inode %lu not found in index", inum); | 1674 | ubifs_err("inode %lu not found in index", (unsigned long)inum); |
| 1672 | return ERR_PTR(-ENOENT); | 1675 | return ERR_PTR(-ENOENT); |
| 1673 | } else if (err < 0) { | 1676 | } else if (err < 0) { |
| 1674 | ubifs_err("error %d while looking up inode %lu", err, inum); | 1677 | ubifs_err("error %d while looking up inode %lu", |
| 1678 | err, (unsigned long)inum); | ||
| 1675 | return ERR_PTR(err); | 1679 | return ERR_PTR(err); |
| 1676 | } | 1680 | } |
| 1677 | 1681 | ||
| 1678 | zbr = &znode->zbranch[n]; | 1682 | zbr = &znode->zbranch[n]; |
| 1679 | if (zbr->len < UBIFS_INO_NODE_SZ) { | 1683 | if (zbr->len < UBIFS_INO_NODE_SZ) { |
| 1680 | ubifs_err("bad node %lu node length %d", inum, zbr->len); | 1684 | ubifs_err("bad node %lu node length %d", |
| 1685 | (unsigned long)inum, zbr->len); | ||
| 1681 | return ERR_PTR(-EINVAL); | 1686 | return ERR_PTR(-EINVAL); |
| 1682 | } | 1687 | } |
| 1683 | 1688 | ||
| @@ -1697,7 +1702,7 @@ static struct fsck_inode *read_add_inode(struct ubifs_info *c, | |||
| 1697 | kfree(ino); | 1702 | kfree(ino); |
| 1698 | if (IS_ERR(fscki)) { | 1703 | if (IS_ERR(fscki)) { |
| 1699 | ubifs_err("error %ld while adding inode %lu node", | 1704 | ubifs_err("error %ld while adding inode %lu node", |
| 1700 | PTR_ERR(fscki), inum); | 1705 | PTR_ERR(fscki), (unsigned long)inum); |
| 1701 | return fscki; | 1706 | return fscki; |
| 1702 | } | 1707 | } |
| 1703 | 1708 | ||
| @@ -1786,7 +1791,8 @@ static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr, | |||
| 1786 | if (IS_ERR(fscki)) { | 1791 | if (IS_ERR(fscki)) { |
| 1787 | err = PTR_ERR(fscki); | 1792 | err = PTR_ERR(fscki); |
| 1788 | ubifs_err("error %d while processing data node and " | 1793 | ubifs_err("error %d while processing data node and " |
| 1789 | "trying to find inode node %lu", err, inum); | 1794 | "trying to find inode node %lu", |
| 1795 | err, (unsigned long)inum); | ||
| 1790 | goto out_dump; | 1796 | goto out_dump; |
| 1791 | } | 1797 | } |
| 1792 | 1798 | ||
| @@ -1819,7 +1825,8 @@ static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr, | |||
| 1819 | if (IS_ERR(fscki)) { | 1825 | if (IS_ERR(fscki)) { |
| 1820 | err = PTR_ERR(fscki); | 1826 | err = PTR_ERR(fscki); |
| 1821 | ubifs_err("error %d while processing entry node and " | 1827 | ubifs_err("error %d while processing entry node and " |
| 1822 | "trying to find inode node %lu", err, inum); | 1828 | "trying to find inode node %lu", |
| 1829 | err, (unsigned long)inum); | ||
| 1823 | goto out_dump; | 1830 | goto out_dump; |
| 1824 | } | 1831 | } |
| 1825 | 1832 | ||
| @@ -1832,7 +1839,7 @@ static int check_leaf(struct ubifs_info *c, struct ubifs_zbranch *zbr, | |||
| 1832 | err = PTR_ERR(fscki); | 1839 | err = PTR_ERR(fscki); |
| 1833 | ubifs_err("error %d while processing entry node and " | 1840 | ubifs_err("error %d while processing entry node and " |
| 1834 | "trying to find parent inode node %lu", | 1841 | "trying to find parent inode node %lu", |
| 1835 | err, inum); | 1842 | err, (unsigned long)inum); |
| 1836 | goto out_dump; | 1843 | goto out_dump; |
| 1837 | } | 1844 | } |
| 1838 | 1845 | ||
| @@ -1923,7 +1930,8 @@ static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd) | |||
| 1923 | fscki->references != 1) { | 1930 | fscki->references != 1) { |
| 1924 | ubifs_err("directory inode %lu has %d " | 1931 | ubifs_err("directory inode %lu has %d " |
| 1925 | "direntries which refer it, but " | 1932 | "direntries which refer it, but " |
| 1926 | "should be 1", fscki->inum, | 1933 | "should be 1", |
| 1934 | (unsigned long)fscki->inum, | ||
| 1927 | fscki->references); | 1935 | fscki->references); |
| 1928 | goto out_dump; | 1936 | goto out_dump; |
| 1929 | } | 1937 | } |
| @@ -1931,27 +1939,29 @@ static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd) | |||
| 1931 | fscki->references != 0) { | 1939 | fscki->references != 0) { |
| 1932 | ubifs_err("root inode %lu has non-zero (%d) " | 1940 | ubifs_err("root inode %lu has non-zero (%d) " |
| 1933 | "direntries which refer it", | 1941 | "direntries which refer it", |
| 1934 | fscki->inum, fscki->references); | 1942 | (unsigned long)fscki->inum, |
| 1943 | fscki->references); | ||
| 1935 | goto out_dump; | 1944 | goto out_dump; |
| 1936 | } | 1945 | } |
| 1937 | if (fscki->calc_sz != fscki->size) { | 1946 | if (fscki->calc_sz != fscki->size) { |
| 1938 | ubifs_err("directory inode %lu size is %lld, " | 1947 | ubifs_err("directory inode %lu size is %lld, " |
| 1939 | "but calculated size is %lld", | 1948 | "but calculated size is %lld", |
| 1940 | fscki->inum, fscki->size, | 1949 | (unsigned long)fscki->inum, |
| 1941 | fscki->calc_sz); | 1950 | fscki->size, fscki->calc_sz); |
| 1942 | goto out_dump; | 1951 | goto out_dump; |
| 1943 | } | 1952 | } |
| 1944 | if (fscki->calc_cnt != fscki->nlink) { | 1953 | if (fscki->calc_cnt != fscki->nlink) { |
| 1945 | ubifs_err("directory inode %lu nlink is %d, " | 1954 | ubifs_err("directory inode %lu nlink is %d, " |
| 1946 | "but calculated nlink is %d", | 1955 | "but calculated nlink is %d", |
| 1947 | fscki->inum, fscki->nlink, | 1956 | (unsigned long)fscki->inum, |
| 1948 | fscki->calc_cnt); | 1957 | fscki->nlink, fscki->calc_cnt); |
| 1949 | goto out_dump; | 1958 | goto out_dump; |
| 1950 | } | 1959 | } |
| 1951 | } else { | 1960 | } else { |
| 1952 | if (fscki->references != fscki->nlink) { | 1961 | if (fscki->references != fscki->nlink) { |
| 1953 | ubifs_err("inode %lu nlink is %d, but " | 1962 | ubifs_err("inode %lu nlink is %d, but " |
| 1954 | "calculated nlink is %d", fscki->inum, | 1963 | "calculated nlink is %d", |
| 1964 | (unsigned long)fscki->inum, | ||
| 1955 | fscki->nlink, fscki->references); | 1965 | fscki->nlink, fscki->references); |
| 1956 | goto out_dump; | 1966 | goto out_dump; |
| 1957 | } | 1967 | } |
| @@ -1959,20 +1969,21 @@ static int check_inodes(struct ubifs_info *c, struct fsck_data *fsckd) | |||
| 1959 | if (fscki->xattr_sz != fscki->calc_xsz) { | 1969 | if (fscki->xattr_sz != fscki->calc_xsz) { |
| 1960 | ubifs_err("inode %lu has xattr size %u, but " | 1970 | ubifs_err("inode %lu has xattr size %u, but " |
| 1961 | "calculated size is %lld", | 1971 | "calculated size is %lld", |
| 1962 | fscki->inum, fscki->xattr_sz, | 1972 | (unsigned long)fscki->inum, fscki->xattr_sz, |
| 1963 | fscki->calc_xsz); | 1973 | fscki->calc_xsz); |
| 1964 | goto out_dump; | 1974 | goto out_dump; |
| 1965 | } | 1975 | } |
| 1966 | if (fscki->xattr_cnt != fscki->calc_xcnt) { | 1976 | if (fscki->xattr_cnt != fscki->calc_xcnt) { |
| 1967 | ubifs_err("inode %lu has %u xattrs, but " | 1977 | ubifs_err("inode %lu has %u xattrs, but " |
| 1968 | "calculated count is %lld", fscki->inum, | 1978 | "calculated count is %lld", |
| 1979 | (unsigned long)fscki->inum, | ||
| 1969 | fscki->xattr_cnt, fscki->calc_xcnt); | 1980 | fscki->xattr_cnt, fscki->calc_xcnt); |
| 1970 | goto out_dump; | 1981 | goto out_dump; |
| 1971 | } | 1982 | } |
| 1972 | if (fscki->xattr_nms != fscki->calc_xnms) { | 1983 | if (fscki->xattr_nms != fscki->calc_xnms) { |
| 1973 | ubifs_err("inode %lu has xattr names' size %u, but " | 1984 | ubifs_err("inode %lu has xattr names' size %u, but " |
| 1974 | "calculated names' size is %lld", | 1985 | "calculated names' size is %lld", |
| 1975 | fscki->inum, fscki->xattr_nms, | 1986 | (unsigned long)fscki->inum, fscki->xattr_nms, |
| 1976 | fscki->calc_xnms); | 1987 | fscki->calc_xnms); |
| 1977 | goto out_dump; | 1988 | goto out_dump; |
| 1978 | } | 1989 | } |
| @@ -1985,11 +1996,12 @@ out_dump: | |||
| 1985 | ino_key_init(c, &key, fscki->inum); | 1996 | ino_key_init(c, &key, fscki->inum); |
| 1986 | err = ubifs_lookup_level0(c, &key, &znode, &n); | 1997 | err = ubifs_lookup_level0(c, &key, &znode, &n); |
| 1987 | if (!err) { | 1998 | if (!err) { |
| 1988 | ubifs_err("inode %lu not found in index", fscki->inum); | 1999 | ubifs_err("inode %lu not found in index", |
| 2000 | (unsigned long)fscki->inum); | ||
| 1989 | return -ENOENT; | 2001 | return -ENOENT; |
| 1990 | } else if (err < 0) { | 2002 | } else if (err < 0) { |
| 1991 | ubifs_err("error %d while looking up inode %lu", | 2003 | ubifs_err("error %d while looking up inode %lu", |
| 1992 | err, fscki->inum); | 2004 | err, (unsigned long)fscki->inum); |
| 1993 | return err; | 2005 | return err; |
| 1994 | } | 2006 | } |
| 1995 | 2007 | ||
| @@ -2007,7 +2019,7 @@ out_dump: | |||
| 2007 | } | 2019 | } |
| 2008 | 2020 | ||
| 2009 | ubifs_msg("dump of the inode %lu sitting in LEB %d:%d", | 2021 | ubifs_msg("dump of the inode %lu sitting in LEB %d:%d", |
| 2010 | fscki->inum, zbr->lnum, zbr->offs); | 2022 | (unsigned long)fscki->inum, zbr->lnum, zbr->offs); |
| 2011 | dbg_dump_node(c, ino); | 2023 | dbg_dump_node(c, ino); |
| 2012 | kfree(ino); | 2024 | kfree(ino); |
| 2013 | return -EINVAL; | 2025 | return -EINVAL; |
