We always pass an inode alongside async_cow. fs_info can be referenced
from this inode so it makes the explicit fs_info member in
struct async_cow redundant, remove it. No functional changes.

Signed-off-by: Nikolay Borisov <nbori...@suse.com>
---
 fs/btrfs/inode.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 546000779310..c6d4e0f67d14 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -368,7 +368,6 @@ struct async_extent {
 
 struct async_cow {
        struct inode *inode;
-       struct btrfs_fs_info *fs_info;
        struct page *locked_page;
        u64 start;
        u64 end;
@@ -1151,13 +1150,10 @@ static noinline void async_cow_start(struct btrfs_work 
*work)
  */
 static noinline void async_cow_submit(struct btrfs_work *work)
 {
-       struct btrfs_fs_info *fs_info;
-       struct async_cow *async_cow;
+       struct async_cow *async_cow = container_of(work, struct async_cow, 
work);
+       struct btrfs_fs_info *fs_info = btrfs_work_owner(work);
        unsigned long nr_pages;
 
-       async_cow = container_of(work, struct async_cow, work);
-
-       fs_info = async_cow->fs_info;
        nr_pages = (async_cow->end - async_cow->start + PAGE_SIZE) >>
                PAGE_SHIFT;
 
@@ -1247,7 +1243,6 @@ static int cow_file_range_async(struct inode *inode, 
struct page *locked_page,
                async_cow[i].inode = inode;
                async_cow[i].start = start;
                async_cow[i].end = cur_end;
-               async_cow[i].fs_info = fs_info;
                async_cow[i].locked_page = locked_page;
                async_cow[i].write_flags = write_flags;
                INIT_LIST_HEAD(&async_cow[i].extents);
-- 
2.17.1

Reply via email to