OSDN Git Service

btrfs: Document logic regarding inode in async_cow_submit
authorNikolay Borisov <nborisov@suse.com>
Thu, 3 Jan 2019 08:50:03 +0000 (10:50 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Feb 2019 13:13:20 +0000 (14:13 +0100)
Add a comment explaining when ->inode could be NULL and why we always
perform the ->async_delalloc_pages modification.

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c

index cb99690..05c50a0 100644 (file)
@@ -1165,6 +1165,12 @@ static noinline void async_cow_submit(struct btrfs_work *work)
            5 * SZ_1M)
                cond_wake_up_nomb(&fs_info->async_submit_wait);
 
+       /*
+        * ->inode could be NULL if async_cow_start has failed to compress,
+        * in which case we don't have anything to submit, yet we need to
+        * always adjust ->async_delalloc_pages as its paired with the init
+        * happening in cow_file_range_async
+        */
        if (async_cow->inode)
                submit_compressed_extents(async_cow);
 }