From 4e71b762243940549a97a67b8018ded5bbfa3808 Mon Sep 17 00:00:00 2001 From: Suman Chakravartula Date: Sat, 27 Jun 2015 13:48:26 -0700 Subject: [PATCH] Destroy qgroup as part of share deletion. --- src/rockstor/fs/btrfs.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/rockstor/fs/btrfs.py b/src/rockstor/fs/btrfs.py index 652f21919..a7a93190b 100644 --- a/src/rockstor/fs/btrfs.py +++ b/src/rockstor/fs/btrfs.py @@ -349,8 +349,10 @@ def remove_share(pool, pool_device, share_name): subvol_mnt_pt = root_pool_mnt + '/' + share_name if (not is_subvol(subvol_mnt_pt)): return + qgroup = ('0/%s' % share_id(pool, pool_device, share_name)) delete_cmd = [BTRFS, 'subvolume', 'delete', subvol_mnt_pt] run_command(delete_cmd) + return qgroup_destroy(qgroup, root_pool_mnt) def remove_snap(pool, pool_device, share_name, snap_name): @@ -460,6 +462,15 @@ def qgroup_id(pool, disk_name, share_name): return '0/' + sid +def qgroup_destroy(qid, mnt_pt): + o, e, rc = run_command([BTRFS, 'qgroup', 'show', mnt_pt]) + for l in o: + if (re.match(qid, l) is not None and + l.split()[0] == qid): + return run_command([BTRFS, 'qgroup', 'destroy', qid, mnt_pt]) + return False + + def update_quota(pool, pool_device, qgroup, size_bytes): pool_device = '/dev/' + pool_device root_pool_mnt = mount_root(pool, pool_device)