]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: use struct btrfs_inode inside btrfs_remap_file_range()
authorDavid Sterba <dsterba@suse.com>
Tue, 18 Feb 2025 00:39:43 +0000 (01:39 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:44 +0000 (20:35 +0100)
Use a struct btrfs_inode to btrfs_remap_file_range() as it's an internal
helper, allowing to remove some use of BTRFS_I.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/reflink.c

index 63d4a4d22801a41b9b31822ced905a5f853db72a..f63f92e176c8f713bd954610d46eb7c936488c46 100644 (file)
@@ -865,8 +865,8 @@ loff_t btrfs_remap_file_range(struct file *src_file, loff_t off,
                struct file *dst_file, loff_t destoff, loff_t len,
                unsigned int remap_flags)
 {
-       struct inode *src_inode = file_inode(src_file);
-       struct inode *dst_inode = file_inode(dst_file);
+       struct btrfs_inode *src_inode = BTRFS_I(file_inode(src_file));
+       struct btrfs_inode *dst_inode = BTRFS_I(file_inode(dst_file));
        bool same_inode = dst_inode == src_inode;
        int ret;
 
@@ -874,10 +874,10 @@ loff_t btrfs_remap_file_range(struct file *src_file, loff_t off,
                return -EINVAL;
 
        if (same_inode) {
-               btrfs_inode_lock(BTRFS_I(src_inode), BTRFS_ILOCK_MMAP);
+               btrfs_inode_lock(src_inode, BTRFS_ILOCK_MMAP);
        } else {
-               lock_two_nondirectories(src_inode, dst_inode);
-               btrfs_double_mmap_lock(BTRFS_I(src_inode), BTRFS_I(dst_inode));
+               lock_two_nondirectories(&src_inode->vfs_inode, &dst_inode->vfs_inode);
+               btrfs_double_mmap_lock(src_inode, dst_inode);
        }
 
        ret = btrfs_remap_file_range_prep(src_file, off, dst_file, destoff,
@@ -886,16 +886,18 @@ loff_t btrfs_remap_file_range(struct file *src_file, loff_t off,
                goto out_unlock;
 
        if (remap_flags & REMAP_FILE_DEDUP)
-               ret = btrfs_extent_same(src_inode, off, len, dst_inode, destoff);
+               ret = btrfs_extent_same(&src_inode->vfs_inode, off, len,
+                                       &dst_inode->vfs_inode, destoff);
        else
                ret = btrfs_clone_files(dst_file, src_file, off, len, destoff);
 
 out_unlock:
        if (same_inode) {
-               btrfs_inode_unlock(BTRFS_I(src_inode), BTRFS_ILOCK_MMAP);
+               btrfs_inode_unlock(src_inode, BTRFS_ILOCK_MMAP);
        } else {
-               btrfs_double_mmap_unlock(BTRFS_I(src_inode), BTRFS_I(dst_inode));
-               unlock_two_nondirectories(src_inode, dst_inode);
+               btrfs_double_mmap_unlock(src_inode, dst_inode);
+               unlock_two_nondirectories(&src_inode->vfs_inode,
+                                         &dst_inode->vfs_inode);
        }
 
        /*