diff options
| -rw-r--r-- | fs/ext4/balloc.c | 29 | ||||
| -rw-r--r-- | fs/ext4/dir.c | 4 | ||||
| -rw-r--r-- | fs/ext4/ext4.h | 7 | ||||
| -rw-r--r-- | fs/ext4/ext4_jbd2.c | 2 | ||||
| -rw-r--r-- | fs/ext4/extents.c | 9 | ||||
| -rw-r--r-- | fs/ext4/ialloc.c | 27 | ||||
| -rw-r--r-- | fs/ext4/inode.c | 43 | ||||
| -rw-r--r-- | fs/ext4/mballoc.c | 27 | ||||
| -rw-r--r-- | fs/ext4/move_extent.c | 12 | ||||
| -rw-r--r-- | fs/ext4/namei.c | 51 | ||||
| -rw-r--r-- | fs/ext4/resize.c | 102 | ||||
| -rw-r--r-- | fs/ext4/super.c | 11 | ||||
| -rw-r--r-- | fs/ext4/xattr.c | 32 |
13 files changed, 146 insertions, 210 deletions
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c index 22bc7435d913..720061a0ee53 100644 --- a/fs/ext4/balloc.c +++ b/fs/ext4/balloc.c | |||
| @@ -97,8 +97,8 @@ unsigned ext4_init_block_bitmap(struct super_block *sb, struct buffer_head *bh, | |||
| 97 | /* If checksum is bad mark all blocks used to prevent allocation | 97 | /* If checksum is bad mark all blocks used to prevent allocation |
| 98 | * essentially implementing a per-group read-only flag. */ | 98 | * essentially implementing a per-group read-only flag. */ |
| 99 | if (!ext4_group_desc_csum_verify(sbi, block_group, gdp)) { | 99 | if (!ext4_group_desc_csum_verify(sbi, block_group, gdp)) { |
| 100 | ext4_error(sb, __func__, | 100 | ext4_error(sb, "Checksum bad for group %u", |
| 101 | "Checksum bad for group %u", block_group); | 101 | block_group); |
| 102 | ext4_free_blks_set(sb, gdp, 0); | 102 | ext4_free_blks_set(sb, gdp, 0); |
| 103 | ext4_free_inodes_set(sb, gdp, 0); | 103 | ext4_free_inodes_set(sb, gdp, 0); |
| 104 | ext4_itable_unused_set(sb, gdp, 0); | 104 | ext4_itable_unused_set(sb, gdp, 0); |
| @@ -210,10 +210,8 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block *sb, | |||
| 210 | struct ext4_sb_info *sbi = EXT4_SB(sb); | 210 | struct ext4_sb_info *sbi = EXT4_SB(sb); |
| 211 | 211 | ||
| 212 | if (block_group >= ngroups) { | 212 | if (block_group >= ngroups) { |
| 213 | ext4_error(sb, "ext4_get_group_desc", | 213 | ext4_error(sb, "block_group >= groups_count - block_group = %u," |
| 214 | "block_group >= groups_count - " | 214 | " groups_count = %u", block_group, ngroups); |
| 215 | "block_group = %u, groups_count = %u", | ||
| 216 | block_group, ngroups); | ||
| 217 | 215 | ||
| 218 | return NULL; | 216 | return NULL; |
| 219 | } | 217 | } |
| @@ -221,8 +219,7 @@ struct ext4_group_desc * ext4_get_group_desc(struct super_block *sb, | |||
| 221 | group_desc = block_group >> EXT4_DESC_PER_BLOCK_BITS(sb); | 219 | group_desc = block_group >> EXT4_DESC_PER_BLOCK_BITS(sb); |
| 222 | offset = block_group & (EXT4_DESC_PER_BLOCK(sb) - 1); | 220 | offset = block_group & (EXT4_DESC_PER_BLOCK(sb) - 1); |
| 223 | if (!sbi->s_group_desc[group_desc]) { | 221 | if (!sbi->s_group_desc[group_desc]) { |
| 224 | ext4_error(sb, "ext4_get_group_desc", | 222 | ext4_error(sb, "Group descriptor not loaded - " |
| 225 | "Group descriptor not loaded - " | ||
| 226 | "block_group = %u, group_desc = %u, desc = %u", | 223 | "block_group = %u, group_desc = %u, desc = %u", |
| 227 | block_group, group_desc, offset); | 224 | block_group, group_desc, offset); |
| 228 | return NULL; | 225 | return NULL; |
| @@ -282,9 +279,7 @@ static int ext4_valid_block_bitmap(struct super_block *sb, | |||
| 282 | return 1; | 279 | return 1; |
| 283 | 280 | ||
| 284 | err_out: | 281 | err_out: |
| 285 | ext4_error(sb, __func__, | 282 | ext4_error(sb, "Invalid block bitmap - block_group = %d, block = %llu", |
| 286 | "Invalid block bitmap - " | ||
| 287 | "block_group = %d, block = %llu", | ||
| 288 | block_group, bitmap_blk); | 283 | block_group, bitmap_blk); |
| 289 | return 0; | 284 | return 0; |
| 290 | } | 285 | } |
| @@ -311,8 +306,7 @@ ext4_read_block_bitmap(struct super_block *sb, ext4_group_t block_group) | |||
| 311 | bitmap_blk = ext4_block_bitmap(sb, desc); | 306 | bitmap_blk = ext4_block_bitmap(sb, desc); |
| 312 | bh = sb_getblk(sb, bitmap_blk); | 307 | bh = sb_getblk(sb, bitmap_blk); |
| 313 | if (unlikely(!bh)) { | 308 | if (unlikely(!bh)) { |
| 314 | ext4_error(sb, __func__, | 309 | ext4_error(sb, "Cannot read block bitmap - " |
| 315 | "Cannot read block bitmap - " | ||
| 316 | "block_group = %u, block_bitmap = %llu", | 310 | "block_group = %u, block_bitmap = %llu", |
| 317 | block_group, bitmap_blk); | 311 | block_group, bitmap_blk); |
| 318 | return NULL; | 312 | return NULL; |
| @@ -354,8 +348,7 @@ ext4_read_block_bitmap(struct super_block *sb, ext4_group_t block_group) | |||
| 354 | set_bitmap_uptodate(bh); | 348 | set_bitmap_uptodate(bh); |
| 355 | if (bh_submit_read(bh) < 0) { | 349 | if (bh_submit_read(bh) < 0) { |
| 356 | put_bh(bh); | 350 | put_bh(bh); |
| 357 | ext4_error(sb, __func__, | 351 | ext4_error(sb, "Cannot read block bitmap - " |
| 358 | "Cannot read block bitmap - " | ||
| 359 | "block_group = %u, block_bitmap = %llu", | 352 | "block_group = %u, block_bitmap = %llu", |
| 360 | block_group, bitmap_blk); | 353 | block_group, bitmap_blk); |
| 361 | return NULL; | 354 | return NULL; |
| @@ -419,8 +412,7 @@ void ext4_add_groupblocks(handle_t *handle, struct super_block *sb, | |||
| 419 | in_range(block, ext4_inode_table(sb, desc), sbi->s_itb_per_group) || | 412 | in_range(block, ext4_inode_table(sb, desc), sbi->s_itb_per_group) || |
| 420 | in_range(block + count - 1, ext4_inode_table(sb, desc), | 413 | in_range(block + count - 1, ext4_inode_table(sb, desc), |
| 421 | sbi->s_itb_per_group)) { | 414 | sbi->s_itb_per_group)) { |
| 422 | ext4_error(sb, __func__, | 415 | ext4_error(sb, "Adding blocks in system zones - " |
| 423 | "Adding blocks in system zones - " | ||
| 424 | "Block = %llu, count = %lu", | 416 | "Block = %llu, count = %lu", |
| 425 | block, count); | 417 | block, count); |
| 426 | goto error_return; | 418 | goto error_return; |
| @@ -453,8 +445,7 @@ void ext4_add_groupblocks(handle_t *handle, struct super_block *sb, | |||
| 453 | BUFFER_TRACE(bitmap_bh, "clear bit"); | 445 | BUFFER_TRACE(bitmap_bh, "clear bit"); |
| 454 | if (!ext4_clear_bit_atomic(ext4_group_lock_ptr(sb, block_group), | 446 | if (!ext4_clear_bit_atomic(ext4_group_lock_ptr(sb, block_group), |
| 455 | bit + i, bitmap_bh->b_data)) { | 447 | bit + i, bitmap_bh->b_data)) { |
| 456 | ext4_error(sb, __func__, | 448 | ext4_error(sb, "bit already cleared for block %llu", |
| 457 | "bit already cleared for block %llu", | ||
| 458 | (ext4_fsblk_t)(block + i)); | 449 | (ext4_fsblk_t)(block + i)); |
| 459 | BUFFER_TRACE(bitmap_bh, "bit already cleared"); | 450 | BUFFER_TRACE(bitmap_bh, "bit already cleared"); |
| 460 | } else { | 451 | } else { |
diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index 9dc93168e262..0e0bef3ba91e 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c | |||
| @@ -83,7 +83,7 @@ int ext4_check_dir_entry(const char *function, struct inode *dir, | |||
| 83 | error_msg = "inode out of bounds"; | 83 | error_msg = "inode out of bounds"; |
| 84 | 84 | ||
| 85 | if (error_msg != NULL) | 85 | if (error_msg != NULL) |
| 86 | ext4_error(dir->i_sb, function, | 86 | __ext4_error(dir->i_sb, function, |
| 87 | "bad entry in directory #%lu: %s - " | 87 | "bad entry in directory #%lu: %s - " |
| 88 | "offset=%u, inode=%u, rec_len=%d, name_len=%d", | 88 | "offset=%u, inode=%u, rec_len=%d, name_len=%d", |
| 89 | dir->i_ino, error_msg, offset, | 89 | dir->i_ino, error_msg, offset, |
| @@ -150,7 +150,7 @@ static int ext4_readdir(struct file *filp, | |||
| 150 | */ | 150 | */ |
| 151 | if (!bh) { | 151 | if (!bh) { |
| 152 | if (!dir_has_error) { | 152 | if (!dir_has_error) { |
| 153 | ext4_error(sb, __func__, "directory #%lu " | 153 | ext4_error(sb, "directory #%lu " |
| 154 | "contains a hole at offset %Lu", | 154 | "contains a hole at offset %Lu", |
| 155 | inode->i_ino, | 155 | inode->i_ino, |
| 156 | (unsigned long long) filp->f_pos); | 156 | (unsigned long long) filp->f_pos); |
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 61cf3b3cde4e..509437ffb71b 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
| @@ -1486,13 +1486,16 @@ extern int ext4_group_extend(struct super_block *sb, | |||
| 1486 | ext4_fsblk_t n_blocks_count); | 1486 | ext4_fsblk_t n_blocks_count); |
| 1487 | 1487 | ||
| 1488 | /* super.c */ | 1488 | /* super.c */ |
| 1489 | extern void ext4_error(struct super_block *, const char *, const char *, ...) | 1489 | extern void __ext4_error(struct super_block *, const char *, const char *, ...) |
| 1490 | __attribute__ ((format (printf, 3, 4))); | 1490 | __attribute__ ((format (printf, 3, 4))); |
| 1491 | #define ext4_error(sb, message...) __ext4_error(sb, __func__, ## message) | ||
| 1491 | extern void __ext4_std_error(struct super_block *, const char *, int); | 1492 | extern void __ext4_std_error(struct super_block *, const char *, int); |
| 1492 | extern void ext4_abort(struct super_block *, const char *, const char *, ...) | 1493 | extern void ext4_abort(struct super_block *, const char *, const char *, ...) |
| 1493 | __attribute__ ((format (printf, 3, 4))); | 1494 | __attribute__ ((format (printf, 3, 4))); |
| 1494 | extern void ext4_warning(struct super_block *, const char *, const char *, ...) | 1495 | extern void __ext4_warning(struct super_block *, const char *, |
| 1496 | const char *, ...) | ||
| 1495 | __attribute__ ((format (printf, 3, 4))); | 1497 | __attribute__ ((format (printf, 3, 4))); |
| 1498 | #define ext4_warning(sb, message...) __ext4_warning(sb, __func__, ## message) | ||
| 1496 | extern void ext4_msg(struct super_block *, const char *, const char *, ...) | 1499 | extern void ext4_msg(struct super_block *, const char *, const char *, ...) |
| 1497 | __attribute__ ((format (printf, 3, 4))); | 1500 | __attribute__ ((format (printf, 3, 4))); |
| 1498 | extern void ext4_grp_locked_error(struct super_block *, ext4_group_t, | 1501 | extern void ext4_grp_locked_error(struct super_block *, ext4_group_t, |
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c index b57e5c711b6d..2f407c487e6b 100644 --- a/fs/ext4/ext4_jbd2.c +++ b/fs/ext4/ext4_jbd2.c | |||
| @@ -132,7 +132,7 @@ int __ext4_handle_dirty_metadata(const char *where, handle_t *handle, | |||
| 132 | if (inode && inode_needs_sync(inode)) { | 132 | if (inode && inode_needs_sync(inode)) { |
| 133 | sync_dirty_buffer(bh); | 133 | sync_dirty_buffer(bh); |
| 134 | if (buffer_req(bh) && !buffer_uptodate(bh)) { | 134 | if (buffer_req(bh) && !buffer_uptodate(bh)) { |
| 135 | ext4_error(inode->i_sb, __func__, | 135 | ext4_error(inode->i_sb, |
| 136 | "IO error syncing inode, " | 136 | "IO error syncing inode, " |
| 137 | "inode=%lu, block=%llu", | 137 | "inode=%lu, block=%llu", |
| 138 | inode->i_ino, | 138 | inode->i_ino, |
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 54616157c0f3..bd808915ad2f 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
| @@ -440,7 +440,7 @@ static int __ext4_ext_check(const char *function, struct inode *inode, | |||
| 440 | return 0; | 440 | return 0; |
| 441 | 441 | ||
| 442 | corrupted: | 442 | corrupted: |
| 443 | ext4_error(inode->i_sb, function, | 443 | __ext4_error(inode->i_sb, function, |
| 444 | "bad header/extent in inode #%lu: %s - magic %x, " | 444 | "bad header/extent in inode #%lu: %s - magic %x, " |
| 445 | "entries %u, max %u(%u), depth %u(%u)", | 445 | "entries %u, max %u(%u), depth %u(%u)", |
| 446 | inode->i_ino, error_msg, le16_to_cpu(eh->eh_magic), | 446 | inode->i_ino, error_msg, le16_to_cpu(eh->eh_magic), |
| @@ -1538,8 +1538,9 @@ int ext4_ext_try_to_merge(struct inode *inode, | |||
| 1538 | merge_done = 1; | 1538 | merge_done = 1; |
| 1539 | WARN_ON(eh->eh_entries == 0); | 1539 | WARN_ON(eh->eh_entries == 0); |
| 1540 | if (!eh->eh_entries) | 1540 | if (!eh->eh_entries) |
| 1541 | ext4_error(inode->i_sb, "ext4_ext_try_to_merge", | 1541 | ext4_error(inode->i_sb, |
| 1542 | "inode#%lu, eh->eh_entries = 0!", inode->i_ino); | 1542 | "inode#%lu, eh->eh_entries = 0!", |
| 1543 | inode->i_ino); | ||
| 1543 | } | 1544 | } |
| 1544 | 1545 | ||
| 1545 | return merge_done; | 1546 | return merge_done; |
| @@ -3238,7 +3239,7 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode, | |||
| 3238 | * this is why assert can't be put in ext4_ext_find_extent() | 3239 | * this is why assert can't be put in ext4_ext_find_extent() |
| 3239 | */ | 3240 | */ |
| 3240 | if (path[depth].p_ext == NULL && depth != 0) { | 3241 | if (path[depth].p_ext == NULL && depth != 0) { |
| 3241 | ext4_error(inode->i_sb, __func__, "bad extent address " | 3242 | ext4_error(inode->i_sb, "bad extent address " |
| 3242 | "inode: %lu, iblock: %d, depth: %d", | 3243 | "inode: %lu, iblock: %d, depth: %d", |
| 3243 | inode->i_ino, iblock, depth); | 3244 | inode->i_ino, iblock, depth); |
| 3244 | err = -EIO; | 3245 | err = -EIO; |
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 2fab5adae1e2..e4aaf619b56d 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c | |||
| @@ -76,8 +76,7 @@ unsigned ext4_init_inode_bitmap(struct super_block *sb, struct buffer_head *bh, | |||
| 76 | /* If checksum is bad mark all blocks and inodes use to prevent | 76 | /* If checksum is bad mark all blocks and inodes use to prevent |
| 77 | * allocation, essentially implementing a per-group read-only flag. */ | 77 | * allocation, essentially implementing a per-group read-only flag. */ |
| 78 | if (!ext4_group_desc_csum_verify(sbi, block_group, gdp)) { | 78 | if (!ext4_group_desc_csum_verify(sbi, block_group, gdp)) { |
| 79 | ext4_error(sb, __func__, "Checksum bad for group %u", | 79 | ext4_error(sb, "Checksum bad for group %u", block_group); |
| 80 | block_group); | ||
| 81 | ext4_free_blks_set(sb, gdp, 0); | 80 | ext4_free_blks_set(sb, gdp, 0); |
| 82 | ext4_free_inodes_set(sb, gdp, 0); | 81 | ext4_free_inodes_set(sb, gdp, 0); |
| 83 | ext4_itable_unused_set(sb, gdp, 0); | 82 | ext4_itable_unused_set(sb, gdp, 0); |
| @@ -111,8 +110,7 @@ ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group) | |||
| 111 | bitmap_blk = ext4_inode_bitmap(sb, desc); | 110 | bitmap_blk = ext4_inode_bitmap(sb, desc); |
| 112 | bh = sb_getblk(sb, bitmap_blk); | 111 | bh = sb_getblk(sb, bitmap_blk); |
| 113 | if (unlikely(!bh)) { | 112 | if (unlikely(!bh)) { |
| 114 | ext4_error(sb, __func__, | 113 | ext4_error(sb, "Cannot read inode bitmap - " |
| 115 | "Cannot read inode bitmap - " | ||
| 116 | "block_group = %u, inode_bitmap = %llu", | 114 | "block_group = %u, inode_bitmap = %llu", |
| 117 | block_group, bitmap_blk); | 115 | block_group, bitmap_blk); |
| 118 | return NULL; | 116 | return NULL; |
| @@ -153,8 +151,7 @@ ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group) | |||
| 153 | set_bitmap_uptodate(bh); | 151 | set_bitmap_uptodate(bh); |
| 154 | if (bh_submit_read(bh) < 0) { | 152 | if (bh_submit_read(bh) < 0) { |
| 155 | put_bh(bh); | 153 | put_bh(bh); |
| 156 | ext4_error(sb, __func__, | 154 | ext4_error(sb, "Cannot read inode bitmap - " |
| 157 | "Cannot read inode bitmap - " | ||
| 158 | "block_group = %u, inode_bitmap = %llu", | 155 | "block_group = %u, inode_bitmap = %llu", |
| 159 | block_group, bitmap_blk); | 156 | block_group, bitmap_blk); |
| 160 | return NULL; | 157 | return NULL; |
| @@ -229,8 +226,7 @@ void ext4_free_inode(handle_t *handle, struct inode *inode) | |||
| 229 | 226 | ||
| 230 | es = EXT4_SB(sb)->s_es; | 227 | es = EXT4_SB(sb)->s_es; |
| 231 | if (ino < EXT4_FIRST_INO(sb) || ino > le32_to_cpu(es->s_inodes_count)) { | 228 | if (ino < EXT4_FIRST_INO(sb) || ino > le32_to_cpu(es->s_inodes_count)) { |
| 232 | ext4_error(sb, "ext4_free_inode", | 229 | ext4_error(sb, "reserved or nonexistent inode %lu", ino); |
| 233 | "reserved or nonexistent inode %lu", ino); | ||
| 234 | goto error_return; | 230 | goto error_return; |
| 235 | } | 231 | } |
| 236 | block_group = (ino - 1) / EXT4_INODES_PER_GROUP(sb); | 232 | block_group = (ino - 1) / EXT4_INODES_PER_GROUP(sb); |
| @@ -248,8 +244,7 @@ void ext4_free_inode(handle_t *handle, struct inode *inode) | |||
| 248 | cleared = ext4_clear_bit_atomic(ext4_group_lock_ptr(sb, block_group), | 244 | cleared = ext4_clear_bit_atomic(ext4_group_lock_ptr(sb, block_group), |
| 249 | bit, bitmap_bh->b_data); | 245 | bit, bitmap_bh->b_data); |
| 250 | if (!cleared) | 246 | if (!cleared) |
| 251 | ext4_error(sb, "ext4_free_inode", | 247 | ext4_error(sb, "bit already cleared for inode %lu", ino); |
| 252 | "bit already cleared for inode %lu", ino); | ||
| 253 | else { | 248 | else { |
| 254 | gdp = ext4_get_group_desc(sb, block_group, &bh2); | 249 | gdp = ext4_get_group_desc(sb, block_group, &bh2); |
| 255 | 250 | ||
| @@ -736,8 +731,7 @@ static int ext4_claim_inode(struct super_block *sb, | |||
| 736 | if ((group == 0 && ino < EXT4_FIRST_INO(sb)) || | 731 | if ((group == 0 && ino < EXT4_FIRST_INO(sb)) || |
| 737 | ino > EXT4_INODES_PER_GROUP(sb)) { | 732 | ino > EXT4_INODES_PER_GROUP(sb)) { |
| 738 | ext4_unlock_group(sb, group); | 733 | ext4_unlock_group(sb, group); |
| 739 | ext4_error(sb, __func__, | 734 | ext4_error(sb, "reserved inode or inode > inodes count - " |
| 740 | "reserved inode or inode > inodes count - " | ||
| 741 | "block_group = %u, inode=%lu", group, | 735 | "block_group = %u, inode=%lu", group, |
| 742 | ino + group * EXT4_INODES_PER_GROUP(sb)); | 736 | ino + group * EXT4_INODES_PER_GROUP(sb)); |
| 743 | return 1; | 737 | return 1; |
| @@ -1099,8 +1093,7 @@ struct inode *ext4_orphan_get(struct super_block *sb, unsigned long ino) | |||
| 1099 | 1093 | ||
| 1100 | /* Error cases - e2fsck has already cleaned up for us */ | 1094 | /* Error cases - e2fsck has already cleaned up for us */ |
| 1101 | if (ino > max_ino) { | 1095 | if (ino > max_ino) { |
| 1102 | ext4_warning(sb, __func__, | 1096 | ext4_warning(sb, "bad orphan ino %lu! e2fsck was run?", ino); |
| 1103 | "bad orphan ino %lu! e2fsck was run?", ino); | ||
| 1104 | goto error; | 1097 | goto error; |
| 1105 | } | 1098 | } |
| 1106 | 1099 | ||
| @@ -1108,8 +1101,7 @@ struct inode *ext4_orphan_get(struct super_block *sb, unsigned long ino) | |||
| 1108 | bit = (ino - 1) % EXT4_INODES_PER_GROUP(sb); | 1101 | bit = (ino - 1) % EXT4_INODES_PER_GROUP(sb); |
| 1109 | bitmap_bh = ext4_read_inode_bitmap(sb, block_group); | 1102 | bitmap_bh = ext4_read_inode_bitmap(sb, block_group); |
| 1110 | if (!bitmap_bh) { | 1103 | if (!bitmap_bh) { |
| 1111 | ext4_warning(sb, __func__, | 1104 | ext4_warning(sb, "inode bitmap error for orphan %lu", ino); |
| 1112 | "inode bitmap error for orphan %lu", ino); | ||
| 1113 | goto error; | 1105 | goto error; |
| 1114 | } | 1106 | } |
| 1115 | 1107 | ||
| @@ -1141,8 +1133,7 @@ iget_failed: | |||
| 1141 | err = PTR_ERR(inode); | 1133 | err = PTR_ERR(inode); |
| 1142 | inode = NULL; | 1134 | inode = NULL; |
| 1143 | bad_orphan: | 1135 | bad_orphan: |
| 1144 | ext4_warning(sb, __func__, | 1136 | ext4_warning(sb, "bad orphan inode %lu! e2fsck was run?", ino); |
| 1145 | "bad orphan inode %lu! e2fsck was run?", ino); | ||
| 1146 | printk(KERN_NOTICE "ext4_test_bit(bit=%d, block=%llu) = %d\n", | 1137 | printk(KERN_NOTICE "ext4_test_bit(bit=%d, block=%llu) = %d\n", |
| 1147 | bit, (unsigned long long)bitmap_bh->b_blocknr, | 1138 | bit, (unsigned long long)bitmap_bh->b_blocknr, |
| 1148 | ext4_test_bit(bit, bitmap_bh->b_data)); | 1139 | ext4_test_bit(bit, bitmap_bh->b_data)); |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 3e530119d7f0..536067bcf75b 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
| @@ -194,7 +194,7 @@ void ext4_delete_inode(struct inode *inode) | |||
| 194 | inode->i_size = 0; | 194 | inode->i_size = 0; |
| 195 | err = ext4_mark_inode_dirty(handle, inode); | 195 | err = ext4_mark_inode_dirty(handle, inode); |
| 196 | if (err) { | 196 | if (err) { |
| 197 | ext4_warning(inode->i_sb, __func__, | 197 | ext4_warning(inode->i_sb, |
| 198 | "couldn't mark inode dirty (err %d)", err); | 198 | "couldn't mark inode dirty (err %d)", err); |
| 199 | goto stop_handle; | 199 | goto stop_handle; |
| 200 | } | 200 | } |
| @@ -212,7 +212,7 @@ void ext4_delete_inode(struct inode *inode) | |||
| 212 | if (err > 0) | 212 | if (err > 0) |
| 213 | err = ext4_journal_restart(handle, 3); | 213 | err = ext4_journal_restart(handle, 3); |
| 214 | if (err != 0) { | 214 | if (err != 0) { |
| 215 | ext4_warning(inode->i_sb, __func__, | 215 | ext4_warning(inode->i_sb, |
| 216 | "couldn't extend journal (err %d)", err); | 216 | "couldn't extend journal (err %d)", err); |
| 217 | stop_handle: | 217 | stop_handle: |
| 218 | ext4_journal_stop(handle); | 218 | ext4_journal_stop(handle); |
| @@ -323,8 +323,7 @@ static int ext4_block_to_path(struct inode *inode, | |||
| 323 | offsets[n++] = i_block & (ptrs - 1); | 323 | offsets[n++] = i_block & (ptrs - 1); |
| 324 | final = ptrs; | 324 | final = ptrs; |
| 325 | } else { | 325 | } else { |
| 326 | ext4_warning(inode->i_sb, "ext4_block_to_path", | 326 | ext4_warning(inode->i_sb, "block %lu > max in inode %lu", |
| 327 | "block %lu > max in inode %lu", | ||
| 328 | i_block + direct_blocks + | 327 | i_block + direct_blocks + |
| 329 | indirect_blocks + double_blocks, inode->i_ino); | 328 | indirect_blocks + double_blocks, inode->i_ino); |
| 330 | } | 329 | } |
| @@ -344,7 +343,7 @@ static int __ext4_check_blockref(const char *function, struct inode *inode, | |||
| 344 | if (blk && | 343 | if (blk && |
| 345 | unlikely(!ext4_data_block_valid(EXT4_SB(inode->i_sb), | 344 | unlikely(!ext4_data_block_valid(EXT4_SB(inode->i_sb), |
| 346 | blk, 1))) { | 345 | blk, 1))) { |
| 347 | ext4_error(inode->i_sb, function, | 346 | __ext4_error(inode->i_sb, function, |
| 348 | "invalid block reference %u " | 347 | "invalid block reference %u " |
| 349 | "in inode #%lu", blk, inode->i_ino); | 348 | "in inode #%lu", blk, inode->i_ino); |
| 350 | return -EIO; | 349 | return -EIO; |
| @@ -1125,7 +1124,7 @@ static int check_block_validity(struct inode *inode, const char *msg, | |||
| 1125 | sector_t logical, sector_t phys, int len) | 1124 | sector_t logical, sector_t phys, int len) |
| 1126 | { | 1125 | { |
| 1127 | if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), phys, len)) { | 1126 | if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), phys, len)) { |
| 1128 | ext4_error(inode->i_sb, msg, | 1127 | __ext4_error(inode->i_sb, msg, |
| 1129 | "inode #%lu logical block %llu mapped to %llu " | 1128 | "inode #%lu logical block %llu mapped to %llu " |
| 1130 | "(size %d)", inode->i_ino, | 1129 | "(size %d)", inode->i_ino, |
| 1131 | (unsigned long long) logical, | 1130 | (unsigned long long) logical, |
| @@ -4147,7 +4146,7 @@ static int ext4_clear_blocks(handle_t *handle, struct inode *inode, | |||
| 4147 | 4146 | ||
| 4148 | if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), block_to_free, | 4147 | if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), block_to_free, |
| 4149 | count)) { | 4148 | count)) { |
| 4150 | ext4_error(inode->i_sb, __func__, "inode #%lu: " | 4149 | ext4_error(inode->i_sb, "inode #%lu: " |
| 4151 | "attempt to clear blocks %llu len %lu, invalid", | 4150 | "attempt to clear blocks %llu len %lu, invalid", |
| 4152 | inode->i_ino, (unsigned long long) block_to_free, | 4151 | inode->i_ino, (unsigned long long) block_to_free, |
| 4153 | count); | 4152 | count); |
| @@ -4255,7 +4254,7 @@ static void ext4_free_data(handle_t *handle, struct inode *inode, | |||
| 4255 | if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh)) | 4254 | if ((EXT4_JOURNAL(inode) == NULL) || bh2jh(this_bh)) |
| 4256 | ext4_handle_dirty_metadata(handle, inode, this_bh); | 4255 | ext4_handle_dirty_metadata(handle, inode, this_bh); |
| 4257 | else | 4256 | else |
| 4258 | ext4_error(inode->i_sb, __func__, | 4257 | ext4_error(inode->i_sb, |
| 4259 | "circular indirect block detected, " | 4258 | "circular indirect block detected, " |
| 4260 | "inode=%lu, block=%llu", | 4259 | "inode=%lu, block=%llu", |
| 4261 | inode->i_ino, | 4260 | inode->i_ino, |
| @@ -4297,7 +4296,7 @@ static void ext4_free_branches(handle_t *handle, struct inode *inode, | |||
| 4297 | 4296 | ||
| 4298 | if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), | 4297 | if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), |
| 4299 | nr, 1)) { | 4298 | nr, 1)) { |
| 4300 | ext4_error(inode->i_sb, __func__, | 4299 | ext4_error(inode->i_sb, |
| 4301 | "indirect mapped block in inode " | 4300 | "indirect mapped block in inode " |
| 4302 | "#%lu invalid (level %d, blk #%lu)", | 4301 | "#%lu invalid (level %d, blk #%lu)", |
| 4303 | inode->i_ino, depth, | 4302 | inode->i_ino, depth, |
| @@ -4313,7 +4312,7 @@ static void ext4_free_branches(handle_t *handle, struct inode *inode, | |||
| 4313 | * (should be rare). | 4312 | * (should be rare). |
| 4314 | */ | 4313 | */ |
| 4315 | if (!bh) { | 4314 | if (!bh) { |
| 4316 | ext4_error(inode->i_sb, "ext4_free_branches", | 4315 | ext4_error(inode->i_sb, |
| 4317 | "Read failure, inode=%lu, block=%llu", | 4316 | "Read failure, inode=%lu, block=%llu", |
| 4318 | inode->i_ino, nr); | 4317 | inode->i_ino, nr); |
| 4319 | continue; | 4318 | continue; |
| @@ -4628,9 +4627,8 @@ static int __ext4_get_inode_loc(struct inode *inode, | |||
| 4628 | 4627 | ||
| 4629 | bh = sb_getblk(sb, block); | 4628 | bh = sb_getblk(sb, block); |
| 4630 | if (!bh) { | 4629 | if (!bh) { |
| 4631 | ext4_error(sb, "ext4_get_inode_loc", "unable to read " | 4630 | ext4_error(sb, "unable to read inode block - " |
| 4632 | "inode block - inode=%lu, block=%llu", | 4631 | "inode=%lu, block=%llu", inode->i_ino, block); |
| 4633 | inode->i_ino, block); | ||
| 4634 | return -EIO; | 4632 | return -EIO; |
| 4635 | } | 4633 | } |
| 4636 | if (!buffer_uptodate(bh)) { | 4634 | if (!buffer_uptodate(bh)) { |
| @@ -4728,9 +4726,8 @@ make_io: | |||
| 4728 | submit_bh(READ_META, bh); | 4726 | submit_bh(READ_META, bh); |
| 4729 | wait_on_buffer(bh); | 4727 | wait_on_buffer(bh); |
| 4730 | if (!buffer_uptodate(bh)) { | 4728 | if (!buffer_uptodate(bh)) { |
| 4731 | ext4_error(sb, __func__, | 4729 | ext4_error(sb, "unable to read inode block - inode=%lu," |
| 4732 | "unable to read inode block - inode=%lu, " | 4730 | " block=%llu", inode->i_ino, block); |
| 4733 | "block=%llu", inode->i_ino, block); | ||
| 4734 | brelse(bh); | 4731 | brelse(bh); |
| 4735 | return -EIO; | 4732 | return -EIO; |
| 4736 | } | 4733 | } |
| @@ -4941,8 +4938,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino) | |||
| 4941 | ret = 0; | 4938 | ret = 0; |
| 4942 | if (ei->i_file_acl && | 4939 | if (ei->i_file_acl && |
| 4943 | !ext4_data_block_valid(EXT4_SB(sb), ei->i_file_acl, 1)) { | 4940 | !ext4_data_block_valid(EXT4_SB(sb), ei->i_file_acl, 1)) { |
| 4944 | ext4_error(sb, __func__, | 4941 | ext4_error(sb, "bad extended attribute block %llu inode #%lu", |
| 4945 | "bad extended attribute block %llu in inode #%lu", | ||
| 4946 | ei->i_file_acl, inode->i_ino); | 4942 | ei->i_file_acl, inode->i_ino); |
| 4947 | ret = -EIO; | 4943 | ret = -EIO; |
| 4948 | goto bad_inode; | 4944 | goto bad_inode; |
| @@ -4988,8 +4984,7 @@ struct inode *ext4_iget(struct super_block *sb, unsigned long ino) | |||
| 4988 | new_decode_dev(le32_to_cpu(raw_inode->i_block[1]))); | 4984 | new_decode_dev(le32_to_cpu(raw_inode->i_block[1]))); |
| 4989 | } else { | 4985 | } else { |
| 4990 | ret = -EIO; | 4986 | ret = -EIO; |
| 4991 | ext4_error(inode->i_sb, __func__, | 4987 | ext4_error(inode->i_sb, "bogus i_mode (%o) for inode=%lu", |
| 4992 | "bogus i_mode (%o) for inode=%lu", | ||
| 4993 | inode->i_mode, inode->i_ino); | 4988 | inode->i_mode, inode->i_ino); |
| 4994 | goto bad_inode; | 4989 | goto bad_inode; |
| 4995 | } | 4990 | } |
| @@ -5228,10 +5223,8 @@ int ext4_write_inode(struct inode *inode, int wait) | |||
| 5228 | if (wait) | 5223 | if (wait) |
| 5229 | sync_dirty_buffer(iloc.bh); | 5224 | sync_dirty_buffer(iloc.bh); |
| 5230 | if (buffer_req(iloc.bh) && !buffer_uptodate(iloc.bh)) { | 5225 | if (buffer_req(iloc.bh) && !buffer_uptodate(iloc.bh)) { |
| 5231 | ext4_error(inode->i_sb, __func__, | 5226 | ext4_error(inode->i_sb, "IO error syncing inode, " |
| 5232 | "IO error syncing inode, " | 5227 | "inode=%lu, block=%llu", inode->i_ino, |
| 5233 | "inode=%lu, block=%llu", | ||
| 5234 | inode->i_ino, | ||
| 5235 | (unsigned long long)iloc.bh->b_blocknr); | 5228 | (unsigned long long)iloc.bh->b_blocknr); |
| 5236 | err = -EIO; | 5229 | err = -EIO; |
| 5237 | } | 5230 | } |
| @@ -5644,7 +5637,7 @@ int ext4_mark_inode_dirty(handle_t *handle, struct inode *inode) | |||
| 5644 | EXT4_STATE_NO_EXPAND); | 5637 | EXT4_STATE_NO_EXPAND); |
| 5645 | if (mnt_count != | 5638 | if (mnt_count != |
| 5646 | le16_to_cpu(sbi->s_es->s_mnt_count)) { | 5639 | le16_to_cpu(sbi->s_es->s_mnt_count)) { |
| 5647 | ext4_warning(inode->i_sb, __func__, | 5640 | ext4_warning(inode->i_sb, |
| 5648 | "Unable to expand inode %lu. Delete" | 5641 | "Unable to expand inode %lu. Delete" |
| 5649 | " some EAs or run e2fsck.", | 5642 | " some EAs or run e2fsck.", |
| 5650 | inode->i_ino); | 5643 | inode->i_ino); |
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index d129c1039f1d..415e11f1e9ee 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
| @@ -2709,8 +2709,7 @@ ext4_mb_mark_diskspace_used(struct ext4_allocation_context *ac, | |||
| 2709 | 2709 | ||
| 2710 | len = ac->ac_b_ex.fe_len; | 2710 | len = ac->ac_b_ex.fe_len; |
| 2711 | if (!ext4_data_block_valid(sbi, block, len)) { | 2711 | if (!ext4_data_block_valid(sbi, block, len)) { |
| 2712 | ext4_error(sb, __func__, | 2712 | ext4_error(sb, "Allocating blocks %llu-%llu which overlap " |
| 2713 | "Allocating blocks %llu-%llu which overlap " | ||
| 2714 | "fs metadata\n", block, block+len); | 2713 | "fs metadata\n", block, block+len); |
| 2715 | /* File system mounted not to panic on error | 2714 | /* File system mounted not to panic on error |
| 2716 | * Fix the bitmap and repeat the block allocation | 2715 | * Fix the bitmap and repeat the block allocation |
| @@ -3623,15 +3622,13 @@ ext4_mb_discard_group_preallocations(struct super_block *sb, | |||
| 3623 | 3622 | ||
| 3624 | bitmap_bh = ext4_read_block_bitmap(sb, group); | 3623 | bitmap_bh = ext4_read_block_bitmap(sb, group); |
| 3625 | if (bitmap_bh == NULL) { | 3624 | if (bitmap_bh == NULL) { |
| 3626 | ext4_error(sb, __func__, "Error in reading block " | 3625 | ext4_error(sb, "Error reading block bitmap for %u", group); |
| 3627 | "bitmap for %u", group); | ||
| 3628 | return 0; | 3626 | return 0; |
| 3629 | } | 3627 | } |
| 3630 | 3628 | ||
| 3631 | err = ext4_mb_load_buddy(sb, group, &e4b); | 3629 | err = ext4_mb_load_buddy(sb, group, &e4b); |
| 3632 | if (err) { | 3630 | if (err) { |
| 3633 | ext4_error(sb, __func__, "Error in loading buddy " | 3631 | ext4_error(sb, "Error loading buddy information for %u", group); |
| 3634 | "information for %u", group); | ||
| 3635 | put_bh(bitmap_bh); | 3632 | put_bh(bitmap_bh); |
| 3636 | return 0; | 3633 | return 0; |
| 3637 | } | 3634 | } |
| @@ -3804,15 +3801,15 @@ repeat: | |||
| 3804 | 3801 | ||
| 3805 | err = ext4_mb_load_buddy(sb, group, &e4b); | 3802 | err = ext4_mb_load_buddy(sb, group, &e4b); |
| 3806 | if (err) { | 3803 | if (err) { |
| 3807 | ext4_error(sb, __func__, "Error in loading buddy " | 3804 | ext4_error(sb, "Error loading buddy information for %u", |
| 3808 | "information for %u", group); | 3805 | group); |
| 3809 | continue; | 3806 | continue; |
| 3810 | } | 3807 | } |
| 3811 | 3808 | ||
| 3812 | bitmap_bh = ext4_read_block_bitmap(sb, group); | 3809 | bitmap_bh = ext4_read_block_bitmap(sb, group); |
| 3813 | if (bitmap_bh == NULL) { | 3810 | if (bitmap_bh == NULL) { |
| 3814 | ext4_error(sb, __func__, "Error in reading block " | 3811 | ext4_error(sb, "Error reading block bitmap for %u", |
| 3815 | "bitmap for %u", group); | 3812 | group); |
| 3816 | ext4_mb_release_desc(&e4b); | 3813 | ext4_mb_release_desc(&e4b); |
| 3817 | continue; | 3814 | continue; |
| 3818 | } | 3815 | } |
| @@ -4077,8 +4074,8 @@ ext4_mb_discard_lg_preallocations(struct super_block *sb, | |||
| 4077 | 4074 | ||
| 4078 | ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, NULL); | 4075 | ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, NULL); |
| 4079 | if (ext4_mb_load_buddy(sb, group, &e4b)) { | 4076 | if (ext4_mb_load_buddy(sb, group, &e4b)) { |
| 4080 | ext4_error(sb, __func__, "Error in loading buddy " | 4077 | ext4_error(sb, "Error loading buddy information for %u", |
| 4081 | "information for %u", group); | 4078 | group); |
| 4082 | continue; | 4079 | continue; |
| 4083 | } | 4080 | } |
| 4084 | ext4_lock_group(sb, group); | 4081 | ext4_lock_group(sb, group); |
| @@ -4478,8 +4475,7 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode, | |||
| 4478 | es = EXT4_SB(sb)->s_es; | 4475 | es = EXT4_SB(sb)->s_es; |
| 4479 | if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) && | 4476 | if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) && |
| 4480 | !ext4_data_block_valid(sbi, block, count)) { | 4477 | !ext4_data_block_valid(sbi, block, count)) { |
| 4481 | ext4_error(sb, __func__, | 4478 | ext4_error(sb, "Freeing blocks not in datazone - " |
| 4482 | "Freeing blocks not in datazone - " | ||
| 4483 | "block = %llu, count = %lu", block, count); | 4479 | "block = %llu, count = %lu", block, count); |
| 4484 | goto error_return; | 4480 | goto error_return; |
| 4485 | } | 4481 | } |
| @@ -4548,8 +4544,7 @@ do_more: | |||
| 4548 | in_range(block + count - 1, ext4_inode_table(sb, gdp), | 4544 | in_range(block + count - 1, ext4_inode_table(sb, gdp), |
| 4549 | EXT4_SB(sb)->s_itb_per_group)) { | 4545 | EXT4_SB(sb)->s_itb_per_group)) { |
| 4550 | 4546 | ||
| 4551 | ext4_error(sb, __func__, | 4547 | ext4_error(sb, "Freeing blocks in system zone - " |
| 4552 | "Freeing blocks in system zone - " | ||
| 4553 | "Block = %llu, count = %lu", block, count); | 4548 | "Block = %llu, count = %lu", block, count); |
| 4554 | /* err = 0. ext4_std_error should be a no op */ | 4549 | /* err = 0. ext4_std_error should be a no op */ |
| 4555 | goto error_return; | 4550 | goto error_return; |
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index 82c415be87a4..1654eb862d74 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c | |||
| @@ -152,12 +152,12 @@ mext_check_null_inode(struct inode *inode1, struct inode *inode2, | |||
| 152 | int ret = 0; | 152 | int ret = 0; |
| 153 | 153 | ||
| 154 | if (inode1 == NULL) { | 154 | if (inode1 == NULL) { |
| 155 | ext4_error(inode2->i_sb, function, | 155 | __ext4_error(inode2->i_sb, function, |
| 156 | "Both inodes should not be NULL: " | 156 | "Both inodes should not be NULL: " |
| 157 | "inode1 NULL inode2 %lu", inode2->i_ino); | 157 | "inode1 NULL inode2 %lu", inode2->i_ino); |
| 158 | ret = -EIO; | 158 | ret = -EIO; |
| 159 | } else if (inode2 == NULL) { | 159 | } else if (inode2 == NULL) { |
| 160 | ext4_error(inode1->i_sb, function, | 160 | __ext4_error(inode1->i_sb, function, |
| 161 | "Both inodes should not be NULL: " | 161 | "Both inodes should not be NULL: " |
| 162 | "inode1 %lu inode2 NULL", inode1->i_ino); | 162 | "inode1 %lu inode2 NULL", inode1->i_ino); |
| 163 | ret = -EIO; | 163 | ret = -EIO; |
| @@ -526,7 +526,7 @@ mext_leaf_block(handle_t *handle, struct inode *orig_inode, | |||
| 526 | * new_ext |-------| | 526 | * new_ext |-------| |
| 527 | */ | 527 | */ |
| 528 | if (le32_to_cpu(oext->ee_block) + oext_alen - 1 < new_ext_end) { | 528 | if (le32_to_cpu(oext->ee_block) + oext_alen - 1 < new_ext_end) { |
| 529 | ext4_error(orig_inode->i_sb, __func__, | 529 | ext4_error(orig_inode->i_sb, |
| 530 | "new_ext_end(%u) should be less than or equal to " | 530 | "new_ext_end(%u) should be less than or equal to " |
| 531 | "oext->ee_block(%u) + oext_alen(%d) - 1", | 531 | "oext->ee_block(%u) + oext_alen(%d) - 1", |
| 532 | new_ext_end, le32_to_cpu(oext->ee_block), | 532 | new_ext_end, le32_to_cpu(oext->ee_block), |
| @@ -689,12 +689,12 @@ mext_replace_branches(handle_t *handle, struct inode *orig_inode, | |||
| 689 | while (1) { | 689 | while (1) { |
| 690 | /* The extent for donor must be found. */ | 690 | /* The extent for donor must be found. */ |
| 691 | if (!dext) { | 691 | if (!dext) { |
| 692 | ext4_error(donor_inode->i_sb, __func__, | 692 | ext4_error(donor_inode->i_sb, |
| 693 | "The extent for donor must be found"); | 693 | "The extent for donor must be found"); |
| 694 | *err = -EIO; | 694 | *err = -EIO; |
| 695 | goto out; | 695 | goto out; |
| 696 | } else if (donor_off != le32_to_cpu(tmp_dext.ee_block)) { | 696 | } else if (donor_off != le32_to_cpu(tmp_dext.ee_block)) { |
| 697 | ext4_error(donor_inode->i_sb, __func__, | 697 | ext4_error(donor_inode->i_sb, |
| 698 | "Donor offset(%u) and the first block of donor " | 698 | "Donor offset(%u) and the first block of donor " |
| 699 | "extent(%u) should be equal", | 699 | "extent(%u) should be equal", |
| 700 | donor_off, | 700 | donor_off, |
| @@ -1351,7 +1351,7 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, | |||
| 1351 | if (ret1 < 0) | 1351 | if (ret1 < 0) |
| 1352 | break; | 1352 | break; |
| 1353 | if (*moved_len > len) { | 1353 | if (*moved_len > len) { |
| 1354 | ext4_error(orig_inode->i_sb, __func__, | 1354 | ext4_error(orig_inode->i_sb, |
| 1355 | "We replaced blocks too much! " | 1355 | "We replaced blocks too much! " |
| 1356 | "sum of replaced: %llu requested: %llu", | 1356 | "sum of replaced: %llu requested: %llu", |
| 1357 | *moved_len, len); | 1357 | *moved_len, len); |
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 17a17e10dd60..bd2dc0b71c8c 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c | |||
| @@ -383,8 +383,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, | |||
| 383 | if (root->info.hash_version != DX_HASH_TEA && | 383 | if (root->info.hash_version != DX_HASH_TEA && |
| 384 | root->info.hash_version != DX_HASH_HALF_MD4 && | 384 | root->info.hash_version != DX_HASH_HALF_MD4 && |
| 385 | root->info.hash_version != DX_HASH_LEGACY) { | 385 | root->info.hash_version != DX_HASH_LEGACY) { |
| 386 | ext4_warning(dir->i_sb, __func__, | 386 | ext4_warning(dir->i_sb, "Unrecognised inode hash code %d", |
| 387 | "Unrecognised inode hash code %d", | ||
| 388 | root->info.hash_version); | 387 | root->info.hash_version); |
| 389 | brelse(bh); | 388 | brelse(bh); |
| 390 | *err = ERR_BAD_DX_DIR; | 389 | *err = ERR_BAD_DX_DIR; |
| @@ -399,8 +398,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, | |||
| 399 | hash = hinfo->hash; | 398 | hash = hinfo->hash; |
| 400 | 399 | ||
| 401 | if (root->info.unused_flags & 1) { | 400 | if (root->info.unused_flags & 1) { |
| 402 | ext4_warning(dir->i_sb, __func__, | 401 | ext4_warning(dir->i_sb, "Unimplemented inode hash flags: %#06x", |
| 403 | "Unimplemented inode hash flags: %#06x", | ||
| 404 | root->info.unused_flags); | 402 | root->info.unused_flags); |
| 405 | brelse(bh); | 403 | brelse(bh); |
| 406 | *err = ERR_BAD_DX_DIR; | 404 | *err = ERR_BAD_DX_DIR; |
| @@ -408,8 +406,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, | |||
| 408 | } | 406 | } |
| 409 | 407 | ||
| 410 | if ((indirect = root->info.indirect_levels) > 1) { | 408 | if ((indirect = root->info.indirect_levels) > 1) { |
| 411 | ext4_warning(dir->i_sb, __func__, | 409 | ext4_warning(dir->i_sb, "Unimplemented inode hash depth: %#06x", |
| 412 | "Unimplemented inode hash depth: %#06x", | ||
| 413 | root->info.indirect_levels); | 410 | root->info.indirect_levels); |
| 414 | brelse(bh); | 411 | brelse(bh); |
| 415 | *err = ERR_BAD_DX_DIR; | 412 | *err = ERR_BAD_DX_DIR; |
| @@ -421,8 +418,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, | |||
| 421 | 418 | ||
| 422 | if (dx_get_limit(entries) != dx_root_limit(dir, | 419 | if (dx_get_limit(entries) != dx_root_limit(dir, |
| 423 | root->info.info_length)) { | 420 | root->info.info_length)) { |
| 424 | ext4_warning(dir->i_sb, __func__, | 421 | ext4_warning(dir->i_sb, "dx entry: limit != root limit"); |
| 425 | "dx entry: limit != root limit"); | ||
| 426 | brelse(bh); | 422 | brelse(bh); |
| 427 | *err = ERR_BAD_DX_DIR; | 423 | *err = ERR_BAD_DX_DIR; |
| 428 | goto fail; | 424 | goto fail; |
| @@ -433,7 +429,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, | |||
| 433 | { | 429 | { |
| 434 | count = dx_get_count(entries); | 430 | count = dx_get_count(entries); |
| 435 | if (!count || count > dx_get_limit(entries)) { | 431 | if (!count || count > dx_get_limit(entries)) { |
| 436 | ext4_warning(dir->i_sb, __func__, | 432 | ext4_warning(dir->i_sb, |
| 437 | "dx entry: no count or count > limit"); | 433 | "dx entry: no count or count > limit"); |
| 438 | brelse(bh); | 434 | brelse(bh); |
| 439 | *err = ERR_BAD_DX_DIR; | 435 | *err = ERR_BAD_DX_DIR; |
| @@ -478,7 +474,7 @@ dx_probe(const struct qstr *d_name, struct inode *dir, | |||
| 478 | goto fail2; | 474 | goto fail2; |
| 479 | at = entries = ((struct dx_node *) bh->b_data)->entries; | 475 | at = entries = ((struct dx_node *) bh->b_data)->entries; |
| 480 | if (dx_get_limit(entries) != dx_node_limit (dir)) { | 476 | if (dx_get_limit(entries) != dx_node_limit (dir)) { |
| 481 | ext4_warning(dir->i_sb, __func__, | 477 | ext4_warning(dir->i_sb, |
| 482 | "dx entry: limit != node limit"); | 478 | "dx entry: limit != node limit"); |
| 483 | brelse(bh); | 479 | brelse(bh); |
| 484 | *err = ERR_BAD_DX_DIR; | 480 | *err = ERR_BAD_DX_DIR; |
| @@ -494,7 +490,7 @@ fail2: | |||
| 494 | } | 490 | } |
| 495 | fail: | 491 | fail: |
| 496 | if (*err == ERR_BAD_DX_DIR) | 492 | if (*err == ERR_BAD_DX_DIR) |
| 497 | ext4_warning(dir->i_sb, __func__, | 493 | ext4_warning(dir->i_sb, |
| 498 | "Corrupt dir inode %ld, running e2fsck is " | 494 | "Corrupt dir inode %ld, running e2fsck is " |
| 499 | "recommended.", dir->i_ino); | 495 | "recommended.", dir->i_ino); |
| 500 | return NULL; | 496 | return NULL; |
| @@ -947,9 +943,8 @@ restart: | |||
| 947 | wait_on_buffer(bh); | 943 | wait_on_buffer(bh); |
| 948 | if (!buffer_uptodate(bh)) { | 944 | if (!buffer_uptodate(bh)) { |
| 949 | /* read error, skip block & hope for the best */ | 945 | /* read error, skip block & hope for the best */ |
| 950 | ext4_error(sb, __func__, "reading directory #%lu " | 946 | ext4_error(sb, "reading directory #%lu offset %lu", |
| 951 | "offset %lu", dir->i_ino, | 947 | dir->i_ino, (unsigned long)block); |
| 952 | (unsigned long)block); | ||
| 953 | brelse(bh); | 948 | brelse(bh); |
| 954 | goto next; | 949 | goto next; |
| 955 | } | 950 | } |
| @@ -1041,7 +1036,7 @@ static struct buffer_head * ext4_dx_find_entry(struct inode *dir, const struct q | |||
| 1041 | retval = ext4_htree_next_block(dir, hash, frame, | 1036 | retval = ext4_htree_next_block(dir, hash, frame, |
| 1042 | frames, NULL); | 1037 | frames, NULL); |
| 1043 | if (retval < 0) { | 1038 | if (retval < 0) { |
| 1044 | ext4_warning(sb, __func__, | 1039 | ext4_warning(sb, |
| 1045 | "error reading index page in directory #%lu", | 1040 | "error reading index page in directory #%lu", |
| 1046 | dir->i_ino); | 1041 | dir->i_ino); |
| 1047 | *err = retval; | 1042 | *err = retval; |
| @@ -1071,14 +1066,13 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, stru | |||
| 1071 | __u32 ino = le32_to_cpu(de->inode); | 1066 | __u32 ino = le32_to_cpu(de->inode); |
| 1072 | brelse(bh); | 1067 | brelse(bh); |
| 1073 | if (!ext4_valid_inum(dir->i_sb, ino)) { | 1068 | if (!ext4_valid_inum(dir->i_sb, ino)) { |
| 1074 | ext4_error(dir->i_sb, "ext4_lookup", | 1069 | ext4_error(dir->i_sb, "bad inode number: %u", ino); |
| 1075 | "bad inode number: %u", ino); | ||
| 1076 | return ERR_PTR(-EIO); | 1070 | return ERR_PTR(-EIO); |
| 1077 | } | 1071 | } |
| 1078 | inode = ext4_iget(dir->i_sb, ino); | 1072 | inode = ext4_iget(dir->i_sb, ino); |
| 1079 | if (unlikely(IS_ERR(inode))) { | 1073 | if (unlikely(IS_ERR(inode))) { |
| 1080 | if (PTR_ERR(inode) == -ESTALE) { | 1074 | if (PTR_ERR(inode) == -ESTALE) { |
| 1081 | ext4_error(dir->i_sb, __func__, | 1075 | ext4_error(dir->i_sb, |
| 1082 | "deleted inode referenced: %u", | 1076 | "deleted inode referenced: %u", |
| 1083 | ino); | 1077 | ino); |
| 1084 | return ERR_PTR(-EIO); | 1078 | return ERR_PTR(-EIO); |
| @@ -1110,7 +1104,7 @@ struct dentry *ext4_get_parent(struct dentry *child) | |||
| 1110 | brelse(bh); | 1104 | brelse(bh); |
| 1111 | 1105 | ||
| 1112 | if (!ext4_valid_inum(child->d_inode->i_sb, ino)) { | 1106 | if (!ext4_valid_inum(child->d_inode->i_sb, ino)) { |
| 1113 | ext4_error(child->d_inode->i_sb, "ext4_get_parent", | 1107 | ext4_error(child->d_inode->i_sb, |
| 1114 | "bad inode number: %u", ino); | 1108 | "bad inode number: %u", ino); |
| 1115 | return ERR_PTR(-EIO); | 1109 | return ERR_PTR(-EIO); |
| 1116 | } | 1110 | } |
| @@ -1410,7 +1404,7 @@ static int make_indexed_dir(handle_t *handle, struct dentry *dentry, | |||
| 1410 | de = (struct ext4_dir_entry_2 *)((char *)fde + | 1404 | de = (struct ext4_dir_entry_2 *)((char *)fde + |
| 1411 | ext4_rec_len_from_disk(fde->rec_len, blocksize)); | 1405 | ext4_rec_len_from_disk(fde->rec_len, blocksize)); |
| 1412 | if ((char *) de >= (((char *) root) + blocksize)) { | 1406 | if ((char *) de >= (((char *) root) + blocksize)) { |
| 1413 | ext4_error(dir->i_sb, __func__, | 1407 | ext4_error(dir->i_sb, |
| 1414 | "invalid rec_len for '..' in inode %lu", | 1408 | "invalid rec_len for '..' in inode %lu", |
| 1415 | dir->i_ino); | 1409 | dir->i_ino); |
| 1416 | brelse(bh); | 1410 | brelse(bh); |
| @@ -1575,8 +1569,7 @@ static int ext4_dx_add_entry(handle_t *handle, struct dentry *dentry, | |||
| 1575 | 1569 | ||
| 1576 | if (levels && (dx_get_count(frames->entries) == | 1570 | if (levels && (dx_get_count(frames->entries) == |
| 1577 | dx_get_limit(frames->entries))) { | 1571 | dx_get_limit(frames->entries))) { |
| 1578 | ext4_warning(sb, __func__, | 1572 | ext4_warning(sb, "Directory index full!"); |
| 1579 | "Directory index full!"); | ||
| 1580 | err = -ENOSPC; | 1573 | err = -ENOSPC; |
| 1581 | goto cleanup; | 1574 | goto cleanup; |
| 1582 | } | 1575 | } |
| @@ -1916,11 +1909,11 @@ static int empty_dir(struct inode *inode) | |||
| 1916 | if (inode->i_size < EXT4_DIR_REC_LEN(1) + EXT4_DIR_REC_LEN(2) || | 1909 | if (inode->i_size < EXT4_DIR_REC_LEN(1) + EXT4_DIR_REC_LEN(2) || |
| 1917 | !(bh = ext4_bread(NULL, inode, 0, 0, &err))) { | 1910 | !(bh = ext4_bread(NULL, inode, 0, 0, &err))) { |
| 1918 | if (err) | 1911 | if (err) |
| 1919 | ext4_error(inode->i_sb, __func__, | 1912 | ext4_error(inode->i_sb, |
| 1920 | "error %d reading directory #%lu offset 0", | 1913 | "error %d reading directory #%lu offset 0", |
| 1921 | err, inode->i_ino); | 1914 | err, inode->i_ino); |
| 1922 | else | 1915 | else |
| 1923 | ext4_warning(inode->i_sb, __func__, | 1916 | ext4_warning(inode->i_sb, |
| 1924 | "bad directory (dir #%lu) - no data block", | 1917 | "bad directory (dir #%lu) - no data block", |
| 1925 | inode->i_ino); | 1918 | inode->i_ino); |
| 1926 | return 1; | 1919 | return 1; |
| @@ -1931,7 +1924,7 @@ static int empty_dir(struct inode *inode) | |||
| 1931 | !le32_to_cpu(de1->inode) || | 1924 | !le32_to_cpu(de1->inode) || |
| 1932 | strcmp(".", de->name) || | 1925 | strcmp(".", de->name) || |
| 1933 | strcmp("..", de1->name)) { | 1926 | strcmp("..", de1->name)) { |
| 1934 | ext4_warning(inode->i_sb, "empty_dir", | 1927 | ext4_warning(inode->i_sb, |
| 1935 | "bad directory (dir #%lu) - no `.' or `..'", | 1928 | "bad directory (dir #%lu) - no `.' or `..'", |
| 1936 | inode->i_ino); | 1929 | inode->i_ino); |
| 1937 | brelse(bh); | 1930 | brelse(bh); |
| @@ -1949,7 +1942,7 @@ static int empty_dir(struct inode *inode) | |||
| 1949 | offset >> EXT4_BLOCK_SIZE_BITS(sb), 0, &err); | 1942 | offset >> EXT4_BLOCK_SIZE_BITS(sb), 0, &err); |
| 1950 | if (!bh) { | 1943 | if (!bh) { |
| 1951 | if (err) | 1944 | if (err) |
| 1952 | ext4_error(sb, __func__, | 1945 | ext4_error(sb, |
| 1953 | "error %d reading directory" | 1946 | "error %d reading directory" |
| 1954 | " #%lu offset %u", | 1947 | " #%lu offset %u", |
| 1955 | err, inode->i_ino, offset); | 1948 | err, inode->i_ino, offset); |
| @@ -2163,7 +2156,7 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry) | |||
| 2163 | if (retval) | 2156 | if (retval) |
| 2164 | goto end_rmdir; | 2157 | goto end_rmdir; |
| 2165 | if (!EXT4_DIR_LINK_EMPTY(inode)) | 2158 | if (!EXT4_DIR_LINK_EMPTY(inode)) |
| 2166 | ext4_warning(inode->i_sb, "ext4_rmdir", | 2159 | ext4_warning(inode->i_sb, |
| 2167 | "empty directory has too many links (%d)", | 2160 | "empty directory has too many links (%d)", |
| 2168 | inode->i_nlink); | 2161 | inode->i_nlink); |
| 2169 | inode->i_version++; | 2162 | inode->i_version++; |
| @@ -2215,7 +2208,7 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry) | |||
| 2215 | goto end_unlink; | 2208 | goto end_unlink; |
| 2216 | 2209 | ||
| 2217 | if (!inode->i_nlink) { | 2210 | if (!inode->i_nlink) { |
| 2218 | ext4_warning(inode->i_sb, "ext4_unlink", | 2211 | ext4_warning(inode->i_sb, |
| 2219 | "Deleting nonexistent file (%lu), %d", | 2212 | "Deleting nonexistent file (%lu), %d", |
| 2220 | inode->i_ino, inode->i_nlink); | 2213 | inode->i_ino, inode->i_nlink); |
| 2221 | inode->i_nlink = 1; | 2214 | inode->i_nlink = 1; |
| @@ -2462,7 +2455,7 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
| 2462 | } | 2455 | } |
| 2463 | } | 2456 | } |
| 2464 | if (retval) { | 2457 | if (retval) { |
| 2465 | ext4_warning(old_dir->i_sb, "ext4_rename", | 2458 | ext4_warning(old_dir->i_sb, |
| 2466 | "Deleting old file (%lu), %d, error=%d", | 2459 | "Deleting old file (%lu), %d, error=%d", |
| 2467 | old_dir->i_ino, old_dir->i_nlink, retval); | 2460 | old_dir->i_ino, old_dir->i_nlink, retval); |
| 2468 | } | 2461 | } |
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 3b2c5541d8a6..5692c48754a0 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c | |||
| @@ -48,65 +48,54 @@ static int verify_group_input(struct super_block *sb, | |||
| 48 | 48 | ||
| 49 | ext4_get_group_no_and_offset(sb, start, NULL, &offset); | 49 | ext4_get_group_no_and_offset(sb, start, NULL, &offset); |
| 50 | if (group != sbi->s_groups_count) | 50 | if (group != sbi->s_groups_count) |
| 51 | ext4_warning(sb, __func__, | 51 | ext4_warning(sb, "Cannot add at group %u (only %u groups)", |
| 52 | "Cannot add at group %u (only %u groups)", | ||
| 53 | input->group, sbi->s_groups_count); | 52 | input->group, sbi->s_groups_count); |
| 54 | else if (offset != 0) | 53 | else if (offset != 0) |
| 55 | ext4_warning(sb, __func__, "Last group not full"); | 54 | ext4_warning(sb, "Last group not full"); |
| 56 | else if (input->reserved_blocks > input->blocks_count / 5) | 55 | else if (input->reserved_blocks > input->blocks_count / 5) |
| 57 | ext4_warning(sb, __func__, "Reserved blocks too high (%u)", | 56 | ext4_warning(sb, "Reserved blocks too high (%u)", |
| 58 | input->reserved_blocks); | 57 | input->reserved_blocks); |
| 59 | else if (free_blocks_count < 0) | 58 | else if (free_blocks_count < 0) |
| 60 | ext4_warning(sb, __func__, "Bad blocks count %u", | 59 | ext4_warning(sb, "Bad blocks count %u", |
| 61 | input->blocks_count); | 60 | input->blocks_count); |
| 62 | else if (!(bh = sb_bread(sb, end - 1))) | 61 | else if (!(bh = sb_bread(sb, end - 1))) |
| 63 | ext4_warning(sb, __func__, | 62 | ext4_warning(sb, "Cannot read last block (%llu)", |
| 64 | "Cannot read last block (%llu)", | ||
| 65 | end - 1); | 63 | end - 1); |
| 66 | else if (outside(input->block_bitmap, start, end)) | 64 | else if (outside(input->block_bitmap, start, end)) |
| 67 | ext4_warning(sb, __func__, | 65 | ext4_warning(sb, "Block bitmap not in group (block %llu)", |
| 68 | "Block bitmap not in group (block %llu)", | ||
| 69 | (unsigned long long)input->block_bitmap); | 66 | (unsigned long long)input->block_bitmap); |
| 70 | else if (outside(input->inode_bitmap, start, end)) | 67 | else if (outside(input->inode_bitmap, start, end)) |
| 71 | ext4_warning(sb, __func__, | 68 | ext4_warning(sb, "Inode bitmap not in group (block %llu)", |
| 72 | "Inode bitmap not in group (block %llu)", | ||
| 73 | (unsigned long long)input->inode_bitmap); | 69 | (unsigned long long)input->inode_bitmap); |
| 74 | else if (outside(input->inode_table, start, end) || | 70 | else if (outside(input->inode_table, start, end) || |
| 75 | outside(itend - 1, start, end)) | 71 | outside(itend - 1, start, end)) |
| 76 | ext4_warning(sb, __func__, | 72 | ext4_warning(sb, "Inode table not in group (blocks %llu-%llu)", |
| 77 | "Inode table not in group (blocks %llu-%llu)", | ||
| 78 | (unsigned long long)input->inode_table, itend - 1); | 73 | (unsigned long long)input->inode_table, itend - 1); |
| 79 | else if (input->inode_bitmap == input->block_bitmap) | 74 | else if (input->inode_bitmap == input->block_bitmap) |
| 80 | ext4_warning(sb, __func__, | 75 | ext4_warning(sb, "Block bitmap same as inode bitmap (%llu)", |
| 81 | "Block bitmap same as inode bitmap (%llu)", | ||
| 82 | (unsigned long long)input->block_bitmap); | 76 | (unsigned long long)input->block_bitmap); |
| 83 | else if (inside(input->block_bitmap, input->inode_table, itend)) | 77 | else if (inside(input->block_bitmap, input->inode_table, itend)) |
| 84 | ext4_warning(sb, __func__, | 78 | ext4_warning(sb, "Block bitmap (%llu) in inode table " |
| 85 | "Block bitmap (%llu) in inode table (%llu-%llu)", | 79 | "(%llu-%llu)", |
| 86 | (unsigned long long)input->block_bitmap, | 80 | (unsigned long long)input->block_bitmap, |
| 87 | (unsigned long long)input->inode_table, itend - 1); | 81 | (unsigned long long)input->inode_table, itend - 1); |
| 88 | else if (inside(input->inode_bitmap, input->inode_table, itend)) | 82 | else if (inside(input->inode_bitmap, input->inode_table, itend)) |
| 89 | ext4_warning(sb, __func__, | 83 | ext4_warning(sb, "Inode bitmap (%llu) in inode table " |
| 90 | "Inode bitmap (%llu) in inode table (%llu-%llu)", | 84 | "(%llu-%llu)", |
| 91 | (unsigned long long)input->inode_bitmap, | 85 | (unsigned long long)input->inode_bitmap, |
| 92 | (unsigned long long)input->inode_table, itend - 1); | 86 | (unsigned long long)input->inode_table, itend - 1); |
| 93 | else if (inside(input->block_bitmap, start, metaend)) | 87 | else if (inside(input->block_bitmap, start, metaend)) |
| 94 | ext4_warning(sb, __func__, | 88 | ext4_warning(sb, "Block bitmap (%llu) in GDT table (%llu-%llu)", |
| 95 | "Block bitmap (%llu) in GDT table" | ||
| 96 | " (%llu-%llu)", | ||
| 97 | (unsigned long long)input->block_bitmap, | 89 | (unsigned long long)input->block_bitmap, |
| 98 | start, metaend - 1); | 90 | start, metaend - 1); |
| 99 | else if (inside(input->inode_bitmap, start, metaend)) | 91 | else if (inside(input->inode_bitmap, start, metaend)) |
| 100 | ext4_warning(sb, __func__, | 92 | ext4_warning(sb, "Inode bitmap (%llu) in GDT table (%llu-%llu)", |
| 101 | "Inode bitmap (%llu) in GDT table" | ||
| 102 | " (%llu-%llu)", | ||
| 103 | (unsigned long long)input->inode_bitmap, | 93 | (unsigned long long)input->inode_bitmap, |
| 104 | start, metaend - 1); | 94 | start, metaend - 1); |
| 105 | else if (inside(input->inode_table, start, metaend) || | 95 | else if (inside(input->inode_table, start, metaend) || |
| 106 | inside(itend - 1, start, metaend)) | 96 | inside(itend - 1, start, metaend)) |
| 107 | ext4_warning(sb, __func__, | 97 | ext4_warning(sb, "Inode table (%llu-%llu) overlaps GDT table " |
| 108 | "Inode table (%llu-%llu) overlaps" | 98 | "(%llu-%llu)", |
| 109 | "GDT table (%llu-%llu)", | ||
| 110 | (unsigned long long)input->inode_table, | 99 | (unsigned long long)input->inode_table, |
| 111 | itend - 1, start, metaend - 1); | 100 | itend - 1, start, metaend - 1); |
| 112 | else | 101 | else |
| @@ -364,8 +353,7 @@ static int verify_reserved_gdb(struct super_block *sb, | |||
| 364 | while ((grp = ext4_list_backups(sb, &three, &five, &seven)) < end) { | 353 | while ((grp = ext4_list_backups(sb, &three, &five, &seven)) < end) { |
| 365 | if (le32_to_cpu(*p++) != | 354 | if (le32_to_cpu(*p++) != |
| 366 | grp * EXT4_BLOCKS_PER_GROUP(sb) + blk){ | 355 | grp * EXT4_BLOCKS_PER_GROUP(sb) + blk){ |
| 367 | ext4_warning(sb, __func__, | 356 | ext4_warning(sb, "reserved GDT %llu" |
| 368 | "reserved GDT %llu" | ||
| 369 | " missing grp %d (%llu)", | 357 | " missing grp %d (%llu)", |
| 370 | blk, grp, | 358 | blk, grp, |
| 371 | grp * | 359 | grp * |
| @@ -420,8 +408,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, | |||
| 420 | */ | 408 | */ |
| 421 | if (EXT4_SB(sb)->s_sbh->b_blocknr != | 409 | if (EXT4_SB(sb)->s_sbh->b_blocknr != |
| 422 | le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) { | 410 | le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) { |
| 423 | ext4_warning(sb, __func__, | 411 | ext4_warning(sb, "won't resize using backup superblock at %llu", |
| 424 | "won't resize using backup superblock at %llu", | ||
| 425 | (unsigned long long)EXT4_SB(sb)->s_sbh->b_blocknr); | 412 | (unsigned long long)EXT4_SB(sb)->s_sbh->b_blocknr); |
| 426 | return -EPERM; | 413 | return -EPERM; |
| 427 | } | 414 | } |
| @@ -444,8 +431,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, | |||
| 444 | 431 | ||
| 445 | data = (__le32 *)dind->b_data; | 432 | data = (__le32 *)dind->b_data; |
| 446 | if (le32_to_cpu(data[gdb_num % EXT4_ADDR_PER_BLOCK(sb)]) != gdblock) { | 433 | if (le32_to_cpu(data[gdb_num % EXT4_ADDR_PER_BLOCK(sb)]) != gdblock) { |
| 447 | ext4_warning(sb, __func__, | 434 | ext4_warning(sb, "new group %u GDT block %llu not reserved", |
| 448 | "new group %u GDT block %llu not reserved", | ||
| 449 | input->group, gdblock); | 435 | input->group, gdblock); |
| 450 | err = -EINVAL; | 436 | err = -EINVAL; |
| 451 | goto exit_dind; | 437 | goto exit_dind; |
| @@ -468,7 +454,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, | |||
| 468 | GFP_NOFS); | 454 | GFP_NOFS); |
| 469 | if (!n_group_desc) { | 455 | if (!n_group_desc) { |
| 470 | err = -ENOMEM; | 456 | err = -ENOMEM; |
| 471 | ext4_warning(sb, __func__, | 457 | ext4_warning(sb, |
| 472 | "not enough memory for %lu groups", gdb_num + 1); | 458 | "not enough memory for %lu groups", gdb_num + 1); |
| 473 | goto exit_inode; | 459 | goto exit_inode; |
| 474 | } | 460 | } |
| @@ -567,8 +553,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode, | |||
| 567 | /* Get each reserved primary GDT block and verify it holds backups */ | 553 | /* Get each reserved primary GDT block and verify it holds backups */ |
| 568 | for (res = 0; res < reserved_gdb; res++, blk++) { | 554 | for (res = 0; res < reserved_gdb; res++, blk++) { |
| 569 | if (le32_to_cpu(*data) != blk) { | 555 | if (le32_to_cpu(*data) != blk) { |
| 570 | ext4_warning(sb, __func__, | 556 | ext4_warning(sb, "reserved block %llu" |
| 571 | "reserved block %llu" | ||
| 572 | " not at offset %ld", | 557 | " not at offset %ld", |
| 573 | blk, | 558 | blk, |
| 574 | (long)(data - (__le32 *)dind->b_data)); | 559 | (long)(data - (__le32 *)dind->b_data)); |
| @@ -713,8 +698,7 @@ static void update_backups(struct super_block *sb, | |||
| 713 | */ | 698 | */ |
| 714 | exit_err: | 699 | exit_err: |
| 715 | if (err) { | 700 | if (err) { |
| 716 | ext4_warning(sb, __func__, | 701 | ext4_warning(sb, "can't update backup for group %u (err %d), " |
| 717 | "can't update backup for group %u (err %d), " | ||
| 718 | "forcing fsck on next reboot", group, err); | 702 | "forcing fsck on next reboot", group, err); |
| 719 | sbi->s_mount_state &= ~EXT4_VALID_FS; | 703 | sbi->s_mount_state &= ~EXT4_VALID_FS; |
| 720 | sbi->s_es->s_state &= cpu_to_le16(~EXT4_VALID_FS); | 704 | sbi->s_es->s_state &= cpu_to_le16(~EXT4_VALID_FS); |
| @@ -753,20 +737,19 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) | |||
| 753 | 737 | ||
| 754 | if (gdb_off == 0 && !EXT4_HAS_RO_COMPAT_FEATURE(sb, | 738 | if (gdb_off == 0 && !EXT4_HAS_RO_COMPAT_FEATURE(sb, |
| 755 | EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER)) { | 739 | EXT4_FEATURE_RO_COMPAT_SPARSE_SUPER)) { |
| 756 | ext4_warning(sb, __func__, | 740 | ext4_warning(sb, "Can't resize non-sparse filesystem further"); |
| 757 | "Can't resize non-sparse filesystem further"); | ||
| 758 | return -EPERM; | 741 | return -EPERM; |
| 759 | } | 742 | } |
| 760 | 743 | ||
| 761 | if (ext4_blocks_count(es) + input->blocks_count < | 744 | if (ext4_blocks_count(es) + input->blocks_count < |
| 762 | ext4_blocks_count(es)) { | 745 | ext4_blocks_count(es)) { |
| 763 | ext4_warning(sb, __func__, "blocks_count overflow"); | 746 | ext4_warning(sb, "blocks_count overflow"); |
| 764 | return -EINVAL; | 747 | return -EINVAL; |
| 765 | } | 748 | } |
| 766 | 749 | ||
| 767 | if (le32_to_cpu(es->s_inodes_count) + EXT4_INODES_PER_GROUP(sb) < | 750 | if (le32_to_cpu(es->s_inodes_count) + EXT4_INODES_PER_GROUP(sb) < |
| 768 | le32_to_cpu(es->s_inodes_count)) { | 751 | le32_to_cpu(es->s_inodes_count)) { |
| 769 | ext4_warning(sb, __func__, "inodes_count overflow"); | 752 | ext4_warning(sb, "inodes_count overflow"); |
| 770 | return -EINVAL; | 753 | return -EINVAL; |
| 771 | } | 754 | } |
| 772 | 755 | ||
| @@ -774,14 +757,13 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) | |||
| 774 | if (!EXT4_HAS_COMPAT_FEATURE(sb, | 757 | if (!EXT4_HAS_COMPAT_FEATURE(sb, |
| 775 | EXT4_FEATURE_COMPAT_RESIZE_INODE) | 758 | EXT4_FEATURE_COMPAT_RESIZE_INODE) |
| 776 | || !le16_to_cpu(es->s_reserved_gdt_blocks)) { | 759 | || !le16_to_cpu(es->s_reserved_gdt_blocks)) { |
| 777 | ext4_warning(sb, __func__, | 760 | ext4_warning(sb, |
| 778 | "No reserved GDT blocks, can't resize"); | 761 | "No reserved GDT blocks, can't resize"); |
| 779 | return -EPERM; | 762 | return -EPERM; |
| 780 | } | 763 | } |
| 781 | inode = ext4_iget(sb, EXT4_RESIZE_INO); | 764 | inode = ext4_iget(sb, EXT4_RESIZE_INO); |
| 782 | if (IS_ERR(inode)) { | 765 | if (IS_ERR(inode)) { |
| 783 | ext4_warning(sb, __func__, | 766 | ext4_warning(sb, "Error opening resize inode"); |
| 784 | "Error opening resize inode"); | ||
| 785 | return PTR_ERR(inode); | 767 | return PTR_ERR(inode); |
| 786 | } | 768 | } |
| 787 | } | 769 | } |
| @@ -810,8 +792,7 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input) | |||
| 810 | 792 | ||
| 811 | mutex_lock(&sbi->s_resize_lock); | 793 | mutex_lock(&sbi->s_resize_lock); |
| 812 | if (input->group != sbi->s_groups_count) { | 794 | if (input->group != sbi->s_groups_count) { |
| 813 | ext4_warning(sb, __func__, | 795 | ext4_warning(sb, "multiple resizers run on filesystem!"); |
| 814 | "multiple resizers run on filesystem!"); | ||
| 815 | err = -EBUSY; | 796 | err = -EBUSY; |
| 816 | goto exit_journal; | 797 | goto exit_journal; |
| 817 | } | 798 | } |
| @@ -997,13 +978,12 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
| 997 | " too large to resize to %llu blocks safely\n", | 978 | " too large to resize to %llu blocks safely\n", |
| 998 | sb->s_id, n_blocks_count); | 979 | sb->s_id, n_blocks_count); |
| 999 | if (sizeof(sector_t) < 8) | 980 | if (sizeof(sector_t) < 8) |
| 1000 | ext4_warning(sb, __func__, "CONFIG_LBDAF not enabled"); | 981 | ext4_warning(sb, "CONFIG_LBDAF not enabled"); |
| 1001 | return -EINVAL; | 982 | return -EINVAL; |
| 1002 | } | 983 | } |
| 1003 | 984 | ||
| 1004 | if (n_blocks_count < o_blocks_count) { | 985 | if (n_blocks_count < o_blocks_count) { |
| 1005 | ext4_warning(sb, __func__, | 986 | ext4_warning(sb, "can't shrink FS - resize aborted"); |
| 1006 | "can't shrink FS - resize aborted"); | ||
| 1007 | return -EBUSY; | 987 | return -EBUSY; |
| 1008 | } | 988 | } |
| 1009 | 989 | ||
| @@ -1011,15 +991,14 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
| 1011 | ext4_get_group_no_and_offset(sb, o_blocks_count, &group, &last); | 991 | ext4_get_group_no_and_offset(sb, o_blocks_count, &group, &last); |
| 1012 | 992 | ||
| 1013 | if (last == 0) { | 993 | if (last == 0) { |
| 1014 | ext4_warning(sb, __func__, | 994 | ext4_warning(sb, "need to use ext2online to resize further"); |
| 1015 | "need to use ext2online to resize further"); | ||
| 1016 | return -EPERM; | 995 | return -EPERM; |
| 1017 | } | 996 | } |
| 1018 | 997 | ||
| 1019 | add = EXT4_BLOCKS_PER_GROUP(sb) - last; | 998 | add = EXT4_BLOCKS_PER_GROUP(sb) - last; |
| 1020 | 999 | ||
| 1021 | if (o_blocks_count + add < o_blocks_count) { | 1000 | if (o_blocks_count + add < o_blocks_count) { |
| 1022 | ext4_warning(sb, __func__, "blocks_count overflow"); | 1001 | ext4_warning(sb, "blocks_count overflow"); |
| 1023 | return -EINVAL; | 1002 | return -EINVAL; |
| 1024 | } | 1003 | } |
| 1025 | 1004 | ||
| @@ -1027,16 +1006,13 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
| 1027 | add = n_blocks_count - o_blocks_count; | 1006 | add = n_blocks_count - o_blocks_count; |
| 1028 | 1007 | ||
| 1029 | if (o_blocks_count + add < n_blocks_count) | 1008 | if (o_blocks_count + add < n_blocks_count) |
| 1030 | ext4_warning(sb, __func__, | 1009 | ext4_warning(sb, "will only finish group (%llu blocks, %u new)", |
| 1031 | "will only finish group (%llu" | ||
| 1032 | " blocks, %u new)", | ||
| 1033 | o_blocks_count + add, add); | 1010 | o_blocks_count + add, add); |
| 1034 | 1011 | ||
| 1035 | /* See if the device is actually as big as what was requested */ | 1012 | /* See if the device is actually as big as what was requested */ |
| 1036 | bh = sb_bread(sb, o_blocks_count + add - 1); | 1013 | bh = sb_bread(sb, o_blocks_count + add - 1); |
| 1037 | if (!bh) { | 1014 | if (!bh) { |
| 1038 | ext4_warning(sb, __func__, | 1015 | ext4_warning(sb, "can't read last block, resize aborted"); |
| 1039 | "can't read last block, resize aborted"); | ||
| 1040 | return -ENOSPC; | 1016 | return -ENOSPC; |
| 1041 | } | 1017 | } |
| 1042 | brelse(bh); | 1018 | brelse(bh); |
| @@ -1047,14 +1023,13 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
| 1047 | handle = ext4_journal_start_sb(sb, 3); | 1023 | handle = ext4_journal_start_sb(sb, 3); |
| 1048 | if (IS_ERR(handle)) { | 1024 | if (IS_ERR(handle)) { |
| 1049 | err = PTR_ERR(handle); | 1025 | err = PTR_ERR(handle); |
| 1050 | ext4_warning(sb, __func__, "error %d on journal start", err); | 1026 | ext4_warning(sb, "error %d on journal start", err); |
| 1051 | goto exit_put; | 1027 | goto exit_put; |
| 1052 | } | 1028 | } |
| 1053 | 1029 | ||
| 1054 | mutex_lock(&EXT4_SB(sb)->s_resize_lock); | 1030 | mutex_lock(&EXT4_SB(sb)->s_resize_lock); |
| 1055 | if (o_blocks_count != ext4_blocks_count(es)) { | 1031 | if (o_blocks_count != ext4_blocks_count(es)) { |
| 1056 | ext4_warning(sb, __func__, | 1032 | ext4_warning(sb, "multiple resizers run on filesystem!"); |
| 1057 | "multiple resizers run on filesystem!"); | ||
| 1058 | mutex_unlock(&EXT4_SB(sb)->s_resize_lock); | 1033 | mutex_unlock(&EXT4_SB(sb)->s_resize_lock); |
| 1059 | ext4_journal_stop(handle); | 1034 | ext4_journal_stop(handle); |
| 1060 | err = -EBUSY; | 1035 | err = -EBUSY; |
| @@ -1063,8 +1038,7 @@ int ext4_group_extend(struct super_block *sb, struct ext4_super_block *es, | |||
| 1063 | 1038 | ||
| 1064 | if ((err = ext4_journal_get_write_access(handle, | 1039 | if ((err = ext4_journal_get_write_access(handle, |
| 1065 | EXT4_SB(sb)->s_sbh))) { | 1040 | EXT4_SB(sb)->s_sbh))) { |
| 1066 | ext4_warning(sb, __func__, | 1041 | ext4_warning(sb, "error %d on journal write access", err); |
| 1067 | "error %d on journal write access", err); | ||
| 1068 | mutex_unlock(&EXT4_SB(sb)->s_resize_lock); | 1042 | mutex_unlock(&EXT4_SB(sb)->s_resize_lock); |
| 1069 | ext4_journal_stop(handle); | 1043 | ext4_journal_stop(handle); |
| 1070 | goto exit_put; | 1044 | goto exit_put; |
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 68a55dffb360..1c85bb67e6eb 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
| @@ -333,7 +333,7 @@ static void ext4_handle_error(struct super_block *sb) | |||
| 333 | sb->s_id); | 333 | sb->s_id); |
| 334 | } | 334 | } |
| 335 | 335 | ||
| 336 | void ext4_error(struct super_block *sb, const char *function, | 336 | void __ext4_error(struct super_block *sb, const char *function, |
| 337 | const char *fmt, ...) | 337 | const char *fmt, ...) |
| 338 | { | 338 | { |
| 339 | va_list args; | 339 | va_list args; |
| @@ -450,7 +450,7 @@ void ext4_msg (struct super_block * sb, const char *prefix, | |||
| 450 | va_end(args); | 450 | va_end(args); |
| 451 | } | 451 | } |
| 452 | 452 | ||
| 453 | void ext4_warning(struct super_block *sb, const char *function, | 453 | void __ext4_warning(struct super_block *sb, const char *function, |
| 454 | const char *fmt, ...) | 454 | const char *fmt, ...) |
| 455 | { | 455 | { |
| 456 | va_list args; | 456 | va_list args; |
| @@ -507,7 +507,7 @@ void ext4_update_dynamic_rev(struct super_block *sb) | |||
| 507 | if (le32_to_cpu(es->s_rev_level) > EXT4_GOOD_OLD_REV) | 507 | if (le32_to_cpu(es->s_rev_level) > EXT4_GOOD_OLD_REV) |
| 508 | return; | 508 | return; |
| 509 | 509 | ||
| 510 | ext4_warning(sb, __func__, | 510 | ext4_warning(sb, |
| 511 | "updating to rev %d because of new feature flag, " | 511 | "updating to rev %d because of new feature flag, " |
| 512 | "running e2fsck is recommended", | 512 | "running e2fsck is recommended", |
| 513 | EXT4_DYNAMIC_REV); | 513 | EXT4_DYNAMIC_REV); |
| @@ -3367,10 +3367,9 @@ static void ext4_clear_journal_err(struct super_block *sb, | |||
| 3367 | char nbuf[16]; | 3367 | char nbuf[16]; |
| 3368 | 3368 | ||
| 3369 | errstr = ext4_decode_error(sb, j_errno, nbuf); | 3369 | errstr = ext4_decode_error(sb, j_errno, nbuf); |
| 3370 | ext4_warning(sb, __func__, "Filesystem error recorded " | 3370 | ext4_warning(sb, "Filesystem error recorded " |
| 3371 | "from previous mount: %s", errstr); | 3371 | "from previous mount: %s", errstr); |
| 3372 | ext4_warning(sb, __func__, "Marking fs in need of " | 3372 | ext4_warning(sb, "Marking fs in need of filesystem check."); |
| 3373 | "filesystem check."); | ||
| 3374 | 3373 | ||
| 3375 | EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS; | 3374 | EXT4_SB(sb)->s_mount_state |= EXT4_ERROR_FS; |
| 3376 | es->s_state |= cpu_to_le16(EXT4_ERROR_FS); | 3375 | es->s_state |= cpu_to_le16(EXT4_ERROR_FS); |
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c index c619a7ea670d..627c98abbed9 100644 --- a/fs/ext4/xattr.c +++ b/fs/ext4/xattr.c | |||
| @@ -227,7 +227,8 @@ ext4_xattr_block_get(struct inode *inode, int name_index, const char *name, | |||
| 227 | ea_bdebug(bh, "b_count=%d, refcount=%d", | 227 | ea_bdebug(bh, "b_count=%d, refcount=%d", |
| 228 | atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount)); | 228 | atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount)); |
| 229 | if (ext4_xattr_check_block(bh)) { | 229 | if (ext4_xattr_check_block(bh)) { |
| 230 | bad_block: ext4_error(inode->i_sb, __func__, | 230 | bad_block: |
| 231 | ext4_error(inode->i_sb, | ||
| 231 | "inode %lu: bad block %llu", inode->i_ino, | 232 | "inode %lu: bad block %llu", inode->i_ino, |
| 232 | EXT4_I(inode)->i_file_acl); | 233 | EXT4_I(inode)->i_file_acl); |
| 233 | error = -EIO; | 234 | error = -EIO; |
| @@ -371,7 +372,7 @@ ext4_xattr_block_list(struct dentry *dentry, char *buffer, size_t buffer_size) | |||
| 371 | ea_bdebug(bh, "b_count=%d, refcount=%d", | 372 | ea_bdebug(bh, "b_count=%d, refcount=%d", |
| 372 | atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount)); | 373 | atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount)); |
| 373 | if (ext4_xattr_check_block(bh)) { | 374 | if (ext4_xattr_check_block(bh)) { |
| 374 | ext4_error(inode->i_sb, __func__, | 375 | ext4_error(inode->i_sb, |
| 375 | "inode %lu: bad block %llu", inode->i_ino, | 376 | "inode %lu: bad block %llu", inode->i_ino, |
| 376 | EXT4_I(inode)->i_file_acl); | 377 | EXT4_I(inode)->i_file_acl); |
| 377 | error = -EIO; | 378 | error = -EIO; |
| @@ -665,9 +666,8 @@ ext4_xattr_block_find(struct inode *inode, struct ext4_xattr_info *i, | |||
| 665 | atomic_read(&(bs->bh->b_count)), | 666 | atomic_read(&(bs->bh->b_count)), |
| 666 | le32_to_cpu(BHDR(bs->bh)->h_refcount)); | 667 | le32_to_cpu(BHDR(bs->bh)->h_refcount)); |
| 667 | if (ext4_xattr_check_block(bs->bh)) { | 668 | if (ext4_xattr_check_block(bs->bh)) { |
| 668 | ext4_error(sb, __func__, | 669 | ext4_error(sb, "inode %lu: bad block %llu", |
| 669 | "inode %lu: bad block %llu", inode->i_ino, | 670 | inode->i_ino, EXT4_I(inode)->i_file_acl); |
| 670 | EXT4_I(inode)->i_file_acl); | ||
| 671 | error = -EIO; | 671 | error = -EIO; |
| 672 | goto cleanup; | 672 | goto cleanup; |
| 673 | } | 673 | } |
| @@ -880,9 +880,8 @@ cleanup_dquot: | |||
| 880 | goto cleanup; | 880 | goto cleanup; |
| 881 | 881 | ||
| 882 | bad_block: | 882 | bad_block: |
| 883 | ext4_error(inode->i_sb, __func__, | 883 | ext4_error(inode->i_sb, "inode %lu: bad block %llu", |
| 884 | "inode %lu: bad block %llu", inode->i_ino, | 884 | inode->i_ino, EXT4_I(inode)->i_file_acl); |
| 885 | EXT4_I(inode)->i_file_acl); | ||
| 886 | goto cleanup; | 885 | goto cleanup; |
| 887 | 886 | ||
| 888 | #undef header | 887 | #undef header |
| @@ -1195,9 +1194,8 @@ retry: | |||
| 1195 | if (!bh) | 1194 | if (!bh) |
| 1196 | goto cleanup; | 1195 | goto cleanup; |
| 1197 | if (ext4_xattr_check_block(bh)) { | 1196 | if (ext4_xattr_check_block(bh)) { |
| 1198 | ext4_error(inode->i_sb, __func__, | 1197 | ext4_error(inode->i_sb, "inode %lu: bad block %llu", |
| 1199 | "inode %lu: bad block %llu", inode->i_ino, | 1198 | inode->i_ino, EXT4_I(inode)->i_file_acl); |
| 1200 | EXT4_I(inode)->i_file_acl); | ||
| 1201 | error = -EIO; | 1199 | error = -EIO; |
| 1202 | goto cleanup; | 1200 | goto cleanup; |
| 1203 | } | 1201 | } |
| @@ -1372,16 +1370,14 @@ ext4_xattr_delete_inode(handle_t *handle, struct inode *inode) | |||
| 1372 | goto cleanup; | 1370 | goto cleanup; |
| 1373 | bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl); | 1371 | bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl); |
| 1374 | if (!bh) { | 1372 | if (!bh) { |
| 1375 | ext4_error(inode->i_sb, __func__, | 1373 | ext4_error(inode->i_sb, "inode %lu: block %llu read error", |
| 1376 | "inode %lu: block %llu read error", inode->i_ino, | 1374 | inode->i_ino, EXT4_I(inode)->i_file_acl); |
| 1377 | EXT4_I(inode)->i_file_acl); | ||
| 1378 | goto cleanup; | 1375 | goto cleanup; |
| 1379 | } | 1376 | } |
| 1380 | if (BHDR(bh)->h_magic != cpu_to_le32(EXT4_XATTR_MAGIC) || | 1377 | if (BHDR(bh)->h_magic != cpu_to_le32(EXT4_XATTR_MAGIC) || |
| 1381 | BHDR(bh)->h_blocks != cpu_to_le32(1)) { | 1378 | BHDR(bh)->h_blocks != cpu_to_le32(1)) { |
| 1382 | ext4_error(inode->i_sb, __func__, | 1379 | ext4_error(inode->i_sb, "inode %lu: bad block %llu", |
| 1383 | "inode %lu: bad block %llu", inode->i_ino, | 1380 | inode->i_ino, EXT4_I(inode)->i_file_acl); |
| 1384 | EXT4_I(inode)->i_file_acl); | ||
| 1385 | goto cleanup; | 1381 | goto cleanup; |
| 1386 | } | 1382 | } |
| 1387 | ext4_xattr_release_block(handle, inode, bh); | 1383 | ext4_xattr_release_block(handle, inode, bh); |
| @@ -1506,7 +1502,7 @@ again: | |||
| 1506 | } | 1502 | } |
| 1507 | bh = sb_bread(inode->i_sb, ce->e_block); | 1503 | bh = sb_bread(inode->i_sb, ce->e_block); |
| 1508 | if (!bh) { | 1504 | if (!bh) { |
| 1509 | ext4_error(inode->i_sb, __func__, | 1505 | ext4_error(inode->i_sb, |
| 1510 | "inode %lu: block %lu read error", | 1506 | "inode %lu: block %lu read error", |
| 1511 | inode->i_ino, (unsigned long) ce->e_block); | 1507 | inode->i_ino, (unsigned long) ce->e_block); |
| 1512 | } else if (le32_to_cpu(BHDR(bh)->h_refcount) >= | 1508 | } else if (le32_to_cpu(BHDR(bh)->h_refcount) >= |
