btrfs: remove unnecessary mutex lock in qgroup_account_snapshot
authorDavid Sterba <dsterba@suse.com>
Mon, 13 Feb 2017 13:07:02 +0000 (14:07 +0100)
committerDavid Sterba <dsterba@suse.com>
Fri, 17 Feb 2017 11:03:50 +0000 (12:03 +0100)
The quota status used to be tracked as a variable, so the mutex was
needed (until "Btrfs: add a flags field to btrfs_fs_info" afcdd129e05a9).
Since the status is a bit modified atomically and we don't hold the
mutex beyond the check, we can drop it.

Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/transaction.c

index 48aabb367f7307816988d5e5a95c430d890a864e..5eefd77bafc779ace09f357fbab7a3bc18bad814 100644 (file)
@@ -1364,12 +1364,8 @@ static int qgroup_account_snapshot(struct btrfs_trans_handle *trans,
         * enabled. If this check races with the ioctl, rescan will
         * kick in anyway.
         */
-       mutex_lock(&fs_info->qgroup_ioctl_lock);
-       if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags)) {
-               mutex_unlock(&fs_info->qgroup_ioctl_lock);
+       if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags))
                return 0;
-       }
-       mutex_unlock(&fs_info->qgroup_ioctl_lock);
 
        /*
         * We are going to commit transaction, see btrfs_commit_transaction()