afs: fix sget() races, close leak on umount
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 12 Jun 2011 20:01:21 +0000 (16:01 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 12 Jun 2011 21:45:36 +0000 (17:45 -0400)
commitdde194a64bb5c3fd05d965775dc92e8a4920a53a
tree2de96109524026f5e3b2bf6d9e3a6999716c8bde
parentd251ed271d528afb407cc2ede30923e34cb209a5
afs: fix sget() races, close leak on umount

* set ->s_fs_info in set() callback passed to sget()
* allocate the thing and set it up enough for afs_test_super() before
making it visible
* have it freed in ->kill_sb() (current tree simply leaks it)
* have ->put_super() leave ->s_fs_info->volume alone; it's too early for
dropping it; do that from ->kill_sb() after having called kill_anon_super().

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/afs/super.c