btrfs: keep orphans for subvolume deletion
authorArne Jansen <sensille@gmx.net>
Thu, 15 Dec 2011 01:12:02 +0000 (20:12 -0500)
committerChris Mason <chris.mason@oracle.com>
Thu, 15 Dec 2011 15:50:37 +0000 (10:50 -0500)
commitf8e9e0b07be0464e12366631da3da73a1a62449c
tree3950d7dfe50186637b0bcca0d38943a64c9dff8c
parent39fb26c398ddf8d7794a85e896cfe1a42e55524b
btrfs: keep orphans for subvolume deletion

Since we have the free space caches, btrfs_orphan_cleanup also runs for
the tree_root. Unfortunately this also cleans up the orphans used to mark
subvol deletions in progress.

Currently if a subvol deletion gets interrupted twice by umount/mount, the
deletion will not be continued and the space permanently lost, though it
would be possible to write a tool to recover those lost subvol deletions.
This patch checks if the orphan belongs to a subvol (dead root) and skips
the deletion.

Signed-off-by: Arne Jansen <sensille@gmx.net>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c