ext4: replace MAX_DEFRAG_SIZE with EXT_MAX_BLOCK
authorEric Sandeen <sandeen@redhat.com>
Thu, 17 Sep 2009 15:55:58 +0000 (11:55 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 17 Sep 2009 15:55:58 +0000 (11:55 -0400)
There's no reason to redefine the maximum allowable offset
in an extent-based file just for defrag;
EXT_MAX_BLOCK already does this.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/ext4.h
fs/ext4/ext4_extents.h
fs/ext4/move_extent.c

index 84e7f1d00a83946a69ca345477c8908ce3131c0f..e227eea23f052c063547b5e4cd6a8b7a5ba59801 100644 (file)
@@ -476,7 +476,6 @@ struct move_extent {
        __u64 len;              /* block length to be moved */
        __u64 moved_len;        /* moved block length */
 };
-#define MAX_DEFRAG_SIZE         ((1UL<<31) - 1)
 
 #define EXT4_EPOCH_BITS 2
 #define EXT4_EPOCH_MASK ((1 << EXT4_EPOCH_BITS) - 1)
index 9538633879d77935373ab340bbff7f875869c991..61652f1d15e67cdc945b9de935550d189ce33b56 100644 (file)
@@ -137,6 +137,7 @@ typedef int (*ext_prepare_callback)(struct inode *, struct ext4_ext_path *,
 #define EXT_BREAK      1
 #define EXT_REPEAT     2
 
+/* Maximum logical block in a file; ext4_extent's ee_block is __le32 */
 #define EXT_MAX_BLOCK  0xffffffff
 
 /*
index 1f027b1ec430b7a905752fcb7f5310dbb42f68eb..c07a2915e40b63d0bf5e0ffa4ad08146e2749e36 100644 (file)
@@ -1040,12 +1040,12 @@ mext_check_arguments(struct inode *orig_inode,
                return -EINVAL;
        }
 
-       if ((orig_start > MAX_DEFRAG_SIZE) ||
-           (donor_start > MAX_DEFRAG_SIZE) ||
-           (*len > MAX_DEFRAG_SIZE) ||
-           (orig_start + *len > MAX_DEFRAG_SIZE))  {
-               ext4_debug("ext4 move extent: Can't handle over [%lu] blocks "
-                       "[ino:orig %lu, donor %lu]\n", MAX_DEFRAG_SIZE,
+       if ((orig_start > EXT_MAX_BLOCK) ||
+           (donor_start > EXT_MAX_BLOCK) ||
+           (*len > EXT_MAX_BLOCK) ||
+           (orig_start + *len > EXT_MAX_BLOCK))  {
+               ext4_debug("ext4 move extent: Can't handle over [%u] blocks "
+                       "[ino:orig %lu, donor %lu]\n", EXT_MAX_BLOCK,
                        orig_inode->i_ino, donor_inode->i_ino);
                return -EINVAL;
        }