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