Mark Fasheh 0b4699dcb6 btrfs: don't go readonly on existing qgroup items
btrfs_drop_snapshot() leaves subvolume qgroup items on disk after
completion. This can cause problems with snapshot creation. If a new
snapshot tries to claim the deleted subvolumes id, btrfs will get -EEXIST
from add_qgroup_item() and go read-only. The following commands will
reproduce this problem (assume btrfs is on /dev/sda and is mounted at
/btrfs)

mkfs.btrfs -f /dev/sda
mount -t btrfs /dev/sda /btrfs/
btrfs quota enable /btrfs/
btrfs su sna /btrfs/ /btrfs/snap
btrfs su de /btrfs/snap
sleep 45
umount /btrfs/
mount -t btrfs /dev/sda /btrfs/

We can fix this by catching -EEXIST in add_qgroup_item() and
initializing the existing items. We have the problem of orphaned
relation items being on disk from an old snapshot but that is outside
the scope of this patch.

Signed-off-by: Mark Fasheh <mfasheh@suse.de>
Signed-off-by: Chris Mason <clm@fb.com>
2014-09-17 13:38:19 -07:00
..
2014-08-08 15:57:24 -07:00
2014-08-08 15:57:20 -07:00
2014-06-04 16:53:53 -07:00
2014-08-06 18:01:12 -07:00
2014-08-07 14:40:09 -04:00
2014-08-08 18:13:21 -07:00
2014-09-08 12:02:03 -04:00
2014-01-25 03:14:05 -05:00
2014-08-06 18:01:12 -07:00
2014-07-15 22:40:23 +02:00
2014-07-31 15:52:51 +03:00
2014-08-07 14:40:09 -04:00
2013-10-24 23:34:54 -04:00
2014-08-08 15:57:23 -07:00
2014-08-08 15:57:31 -07:00
2014-05-06 17:31:10 -04:00
2013-10-24 23:34:54 -04:00
2014-02-07 16:08:57 -08:00
2014-08-07 14:40:08 -04:00
2014-08-07 14:40:09 -04:00
2014-05-06 17:39:42 -04:00
2014-04-01 23:19:08 -04:00
2013-11-09 00:16:31 -05:00
2014-07-23 10:18:02 -07:00