btrfs: handle record_root_in_trans failure in qgroup_account_snapshot
authorJosef Bacik <josef@toxicpanda.com>
Fri, 12 Mar 2021 20:25:09 +0000 (15:25 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Apr 2021 15:25:20 +0000 (17:25 +0200)
record_root_in_trans can fail currently, so handle this failure
properly.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/transaction.c

index deb1864..6362549 100644 (file)
@@ -1454,7 +1454,9 @@ static int qgroup_account_snapshot(struct btrfs_trans_handle *trans,
         * recorded root will never be updated again, causing an outdated root
         * item.
         */
-       record_root_in_trans(trans, src, 1);
+       ret = record_root_in_trans(trans, src, 1);
+       if (ret)
+               return ret;
 
        /*
         * btrfs_qgroup_inherit relies on a consistent view of the usage for the
@@ -1523,7 +1525,7 @@ out:
         * insert_dir_item()
         */
        if (!ret)
-               record_root_in_trans(trans, parent, 1);
+               ret = record_root_in_trans(trans, parent, 1);
        return ret;
 }