Hello Arne,
This patch-set mainly do two kind of things:
1> introduce a mutex lock to avoid race conditions
2> fix missing check before creating qgroup relations and
btrfs_qgroup_inherit().
I think the above two things should be fixed. However,
this patch-set don't have ioctl checks, i want to make it
a RFC patch:
all the quota configurations are loaded in memory,
so before operating in disk we can have a check if
it is really necessary to operate in disk.[for example, creating
a group has been existed].
However, if we don't have this check, it should work
ok for us too. Maybe to have a check in memory before will
speed up the operations if operation should return errors.
What do you think of ioctls checks?
Thanks,
Wang
> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html