diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:26:37 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 13:26:37 -0400 |
commit | e4ce30f3779c2ddaa7dfaa4042209e5dbacbada5 (patch) | |
tree | cc64c1dcd16b5dbf71ebc8338b339e6fb04abaee /fs/ext4/move_extent.c | |
parent | b899ebeb05da4287ce845976727e3e83dadd25d5 (diff) | |
parent | 14ece1028b3ed53ffec1b1213ffc6acaf79ad77c (diff) |
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)
ext4: Make fsync sync new parent directories in no-journal mode
ext4: Drop whitespace at end of lines
ext4: Fix compat EXT4_IOC_ADD_GROUP
ext4: Conditionally define compat ioctl numbers
tracing: Convert more ext4 events to DEFINE_EVENT
ext4: Add new tracepoints to track mballoc's buddy bitmap loads
ext4: Add a missing trace hook
ext4: restart ext4_ext_remove_space() after transaction restart
ext4: Clear the EXT4_EOFBLOCKS_FL flag only when warranted
ext4: Avoid crashing on NULL ptr dereference on a filesystem error
ext4: Use bitops to read/modify i_flags in struct ext4_inode_info
ext4: Convert calls of ext4_error() to EXT4_ERROR_INODE()
ext4: Convert callers of ext4_get_blocks() to use ext4_map_blocks()
ext4: Add new abstraction ext4_map_blocks() underneath ext4_get_blocks()
ext4: Use our own write_cache_pages()
ext4: Show journal_checksum option
ext4: Fix for ext4_mb_collect_stats()
ext4: check for a good block group before loading buddy pages
ext4: Prevent creation of files larger than RLIMIT_FSIZE using fallocate
ext4: Remove extraneous newlines in ext4_msg() calls
...
Fixed up trivial conflict in fs/ext4/fsync.c
Diffstat (limited to 'fs/ext4/move_extent.c')
-rw-r--r-- | fs/ext4/move_extent.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index d1fc662cc311..3a6c92ac131c 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c | |||
@@ -482,6 +482,7 @@ mext_leaf_block(handle_t *handle, struct inode *orig_inode, | |||
482 | int depth = ext_depth(orig_inode); | 482 | int depth = ext_depth(orig_inode); |
483 | int ret; | 483 | int ret; |
484 | 484 | ||
485 | start_ext.ee_block = end_ext.ee_block = 0; | ||
485 | o_start = o_end = oext = orig_path[depth].p_ext; | 486 | o_start = o_end = oext = orig_path[depth].p_ext; |
486 | oext_alen = ext4_ext_get_actual_len(oext); | 487 | oext_alen = ext4_ext_get_actual_len(oext); |
487 | start_ext.ee_len = end_ext.ee_len = 0; | 488 | start_ext.ee_len = end_ext.ee_len = 0; |
@@ -529,7 +530,7 @@ mext_leaf_block(handle_t *handle, struct inode *orig_inode, | |||
529 | * new_ext |-------| | 530 | * new_ext |-------| |
530 | */ | 531 | */ |
531 | if (le32_to_cpu(oext->ee_block) + oext_alen - 1 < new_ext_end) { | 532 | if (le32_to_cpu(oext->ee_block) + oext_alen - 1 < new_ext_end) { |
532 | ext4_error(orig_inode->i_sb, | 533 | EXT4_ERROR_INODE(orig_inode, |
533 | "new_ext_end(%u) should be less than or equal to " | 534 | "new_ext_end(%u) should be less than or equal to " |
534 | "oext->ee_block(%u) + oext_alen(%d) - 1", | 535 | "oext->ee_block(%u) + oext_alen(%d) - 1", |
535 | new_ext_end, le32_to_cpu(oext->ee_block), | 536 | new_ext_end, le32_to_cpu(oext->ee_block), |
@@ -692,12 +693,12 @@ mext_replace_branches(handle_t *handle, struct inode *orig_inode, | |||
692 | while (1) { | 693 | while (1) { |
693 | /* The extent for donor must be found. */ | 694 | /* The extent for donor must be found. */ |
694 | if (!dext) { | 695 | if (!dext) { |
695 | ext4_error(donor_inode->i_sb, | 696 | EXT4_ERROR_INODE(donor_inode, |
696 | "The extent for donor must be found"); | 697 | "The extent for donor must be found"); |
697 | *err = -EIO; | 698 | *err = -EIO; |
698 | goto out; | 699 | goto out; |
699 | } else if (donor_off != le32_to_cpu(tmp_dext.ee_block)) { | 700 | } else if (donor_off != le32_to_cpu(tmp_dext.ee_block)) { |
700 | ext4_error(donor_inode->i_sb, | 701 | EXT4_ERROR_INODE(donor_inode, |
701 | "Donor offset(%u) and the first block of donor " | 702 | "Donor offset(%u) and the first block of donor " |
702 | "extent(%u) should be equal", | 703 | "extent(%u) should be equal", |
703 | donor_off, | 704 | donor_off, |
@@ -976,11 +977,11 @@ mext_check_arguments(struct inode *orig_inode, | |||
976 | } | 977 | } |
977 | 978 | ||
978 | /* Ext4 move extent supports only extent based file */ | 979 | /* Ext4 move extent supports only extent based file */ |
979 | if (!(EXT4_I(orig_inode)->i_flags & EXT4_EXTENTS_FL)) { | 980 | if (!(ext4_test_inode_flag(orig_inode, EXT4_INODE_EXTENTS))) { |
980 | ext4_debug("ext4 move extent: orig file is not extents " | 981 | ext4_debug("ext4 move extent: orig file is not extents " |
981 | "based file [ino:orig %lu]\n", orig_inode->i_ino); | 982 | "based file [ino:orig %lu]\n", orig_inode->i_ino); |
982 | return -EOPNOTSUPP; | 983 | return -EOPNOTSUPP; |
983 | } else if (!(EXT4_I(donor_inode)->i_flags & EXT4_EXTENTS_FL)) { | 984 | } else if (!(ext4_test_inode_flag(donor_inode, EXT4_INODE_EXTENTS))) { |
984 | ext4_debug("ext4 move extent: donor file is not extents " | 985 | ext4_debug("ext4 move extent: donor file is not extents " |
985 | "based file [ino:donor %lu]\n", donor_inode->i_ino); | 986 | "based file [ino:donor %lu]\n", donor_inode->i_ino); |
986 | return -EOPNOTSUPP; | 987 | return -EOPNOTSUPP; |
@@ -1354,7 +1355,7 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, | |||
1354 | if (ret1 < 0) | 1355 | if (ret1 < 0) |
1355 | break; | 1356 | break; |
1356 | if (*moved_len > len) { | 1357 | if (*moved_len > len) { |
1357 | ext4_error(orig_inode->i_sb, | 1358 | EXT4_ERROR_INODE(orig_inode, |
1358 | "We replaced blocks too much! " | 1359 | "We replaced blocks too much! " |
1359 | "sum of replaced: %llu requested: %llu", | 1360 | "sum of replaced: %llu requested: %llu", |
1360 | *moved_len, len); | 1361 | *moved_len, len); |