Btrfs - fix race between btrfs_get_sb() and umount
authorIan Kent <raven@themaw.net>
Mon, 22 Nov 2010 02:21:38 +0000 (02:21 +0000)
committerChris Mason <chris.mason@oracle.com>
Sat, 27 Nov 2010 18:37:44 +0000 (13:37 -0500)
commit619c8c763928841b1112e1d417f88bc1d44daecb
tree23fc73cf043faac2cdb15a0b22e6e9e29a69797a
parentbc1cbf1f86aa2501efa9ca637c736fce6bcc4b1d
Btrfs - fix race between btrfs_get_sb() and umount

When mounting a btrfs file system btrfs_test_super() may attempt to
use sb->s_fs_info, the btrfs root, of a super block that is going away
and that has had the btrfs root set to NULL in its ->put_super(). But
if the super block is going away it cannot be an existing super block
so we can return false in this case.

Signed-off-by: Ian Kent <raven@themaw.net>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/super.c