This patchset introduces a mutex lock 'qgroup_ioctl_lock'
to protect all the user change for quota operations.

Without an extra lock, race condition can not be avoided
between operations in disk and in memory.

Holding mutex lock, we can fix missing check before creating
a qgroup(whether 'src' and 'dst' exist).And we can guarantee
that all the qgroups in 'inherit' dose exist before tracking
qgroup.

V2->V3:
        rename 'quota_lock' to 'qgroup_ioctl_lock' and holding
        'qgroup_ioctl_lock' inside qgroup.c to avoid serializing
        operations.
V1->V2:
        use quota configurations in memory to speed up checks.

Wang Shilong (5):
  Btrfs: introduce a mutex lock for btrfs quota operations
  Btrfs: remove some unnecessary spin_lock usages
  Btrfs: fix missing check before creating a qgroup relation
  Btrfs: fix missing check in the btrfs_qgroup_inherit()
  Btrfs: fix a warning when updating qgroup limit

 fs/btrfs/ctree.h   |   3 ++
 fs/btrfs/disk-io.c |   1 +
 fs/btrfs/qgroup.c  | 136 ++++++++++++++++++++++++++++++++++-------------------
 3 files changed, 92 insertions(+), 48 deletions(-)

-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to