]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ext4: use EXT4_B_TO_LBLK() in mext_check_arguments()
authorZhang Yi <yi.zhang@huawei.com>
Mon, 13 Oct 2025 01:51:21 +0000 (09:51 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 6 Nov 2025 15:44:39 +0000 (10:44 -0500)
Switch to using EXT4_B_TO_LBLK() to calculate the EOF position of the
origin and donor inodes, instead of using open-coded calculations.

Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Message-ID: <20251013015128.499308-6-yi.zhang@huaweicloud.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/move_extent.c

index 0f4b7c89edd398786f19ef6b39cff644922ff57c..6175906c711947d7951fe5e9b2123dc03c6dd547 100644 (file)
@@ -461,12 +461,6 @@ mext_check_arguments(struct inode *orig_inode,
                     __u64 donor_start, __u64 *len)
 {
        __u64 orig_eof, donor_eof;
-       unsigned int blkbits = orig_inode->i_blkbits;
-       unsigned int blocksize = 1 << blkbits;
-
-       orig_eof = (i_size_read(orig_inode) + blocksize - 1) >> blkbits;
-       donor_eof = (i_size_read(donor_inode) + blocksize - 1) >> blkbits;
-
 
        if (donor_inode->i_mode & (S_ISUID|S_ISGID)) {
                ext4_debug("ext4 move extent: suid or sgid is set"
@@ -526,6 +520,9 @@ mext_check_arguments(struct inode *orig_inode,
                        orig_inode->i_ino, donor_inode->i_ino);
                return -EINVAL;
        }
+
+       orig_eof = EXT4_B_TO_LBLK(orig_inode, i_size_read(orig_inode));
+       donor_eof = EXT4_B_TO_LBLK(donor_inode, i_size_read(donor_inode));
        if (orig_eof <= orig_start)
                *len = 0;
        else if (orig_eof < orig_start + *len - 1)