mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
btrfs: qgroup: fix quota disable during rescan
There's a race condition that leads to a NULL pointer dereference if you disable quotas while a quota rescan is running. To fix this, we just need to wait for the quota rescan worker to actually exit before tearing down the quota structures. Signed-off-by: Justin Maggard <[email protected]> Signed-off-by: Chris Mason <[email protected]>
This commit is contained in:
parent
036a9348dc
commit
967ef5131e
1 changed files with 2 additions and 1 deletions
|
|
@ -993,9 +993,10 @@ int btrfs_quota_disable(struct btrfs_trans_handle *trans,
|
|||
mutex_lock(&fs_info->qgroup_ioctl_lock);
|
||||
if (!fs_info->quota_root)
|
||||
goto out;
|
||||
spin_lock(&fs_info->qgroup_lock);
|
||||
fs_info->quota_enabled = 0;
|
||||
fs_info->pending_quota_state = 0;
|
||||
btrfs_qgroup_wait_for_completion(fs_info);
|
||||
spin_lock(&fs_info->qgroup_lock);
|
||||
quota_root = fs_info->quota_root;
|
||||
fs_info->quota_root = NULL;
|
||||
fs_info->qgroup_flags &= ~BTRFS_QGROUP_STATUS_FLAG_ON;
|
||||
|
|
|
|||
Loading…
Reference in a new issue