linux/fs/ubifs
Al Viro d251ed271d ubifs: fix sget races
* allocate ubifs_info in ->mount(), fill it enough for sb_test() and
set ->s_fs_info to it in set() callback passed to sget().
* do *not* free it in ->put_super(); do that in ->kill_sb() after we'd
done kill_anon_super().
* don't free it in ubifs_fill_super() either - deactivate_locked_super()
done by caller when ubifs_fill_super() returns an error will take care
of that sucker.
* get rid of kludge with passing ubi to ubifs_fill_super() in ->s_fs_info;
we only need it in alloc_ubifs_info(), so ubifs_fill_super() will need
only ubifs_info.  Which it will find in ->s_fs_info just fine, no need to
reassign anything...

As the result, sb_test() becomes safe to apply to all superblocks that
can be found by sget() (and a kludge with temporary use of ->s_fs_info
to store a pointer to very different structure goes away).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2011-06-12 17:45:34 -04:00
..
budget.c UBIFS: introduce a separate structure for budgeting info 2011-05-13 19:23:53 +03:00
commit.c UBIFS: introduce a separate structure for budgeting info 2011-05-13 19:23:53 +03:00
compress.c UBIFS: fix sparse warnings 2008-12-31 14:13:24 +02:00
debug.c UBIFS: switch to dynamic printks 2011-05-23 08:22:20 +03:00
debug.h UBIFS: switch to dynamic printks 2011-05-23 08:22:20 +03:00
dir.c ubifs: remove unnecessary dentry_unhash from rmdir, dir rename 2011-05-28 01:02:51 -04:00
file.c UBIFS: remove strange commentary 2011-05-13 19:23:55 +03:00
find.c UBIFS: introduce a separate structure for budgeting info 2011-05-13 19:23:53 +03:00
gc.c UBIFS: synchronize write-buffer before switching to the next bud 2011-05-16 10:31:41 +03:00
io.c UBIFS: assert no fixup when writing a node 2011-06-03 18:12:31 +03:00
ioctl.c userns: rename is_owner_or_cap to inode_owner_or_capable 2011-03-23 19:47:13 -07:00
journal.c UBIFS: fix memory leak on error path 2011-06-03 18:12:31 +03:00
Kconfig UBIFS: do not select KALLSYMS_ALL 2011-04-05 10:45:45 +03:00
key.h UBIFS: mark unused key objects as invalid 2010-08-30 10:19:08 +03:00
log.c UBIFS: share the next_log_lnum helper 2011-05-16 14:12:12 +03:00
lprops.c UBIFS: dump more in the lprops debugging check 2011-05-16 10:31:39 +03:00
lpt_commit.c UBIFS: introduce lsave debugging 2011-05-13 19:23:54 +03:00
lpt.c UBIFS: fix oops on error path in read_pnode 2011-04-05 10:40:31 +03:00
Makefile UBIFS: include to compilation 2008-07-15 17:35:24 +03:00
master.c UBIFS: introduce a separate structure for budgeting info 2011-05-13 19:23:53 +03:00
misc.h UBIFS: share the next_log_lnum helper 2011-05-16 14:12:12 +03:00
orphan.c UBIFS: amend ubifs_recover_leb interface 2011-06-01 12:29:06 +03:00
recovery.c UBIFS: fix recovery broken by the previous recovery fix 2011-06-01 12:29:06 +03:00
replay.c UBIFS: amend ubifs_recover_leb interface 2011-06-01 12:29:06 +03:00
sb.c UBIFS: add the fixup function 2011-05-16 14:12:15 +03:00
scan.c UBIFS: remove double semicolon 2011-02-06 15:08:02 +02:00
shrinker.c UBIFS: fix shrinker object count reports 2011-06-03 18:12:24 +03:00
super.c ubifs: fix sget races 2011-06-12 17:45:34 -04:00
tnc_commit.c UBIFS: make force in-the-gaps to be a general self-check 2011-05-13 19:23:54 +03:00
tnc_misc.c UBIFS: correct key comparison 2008-09-30 11:12:57 +03:00
tnc.c UBIFS: fix clean znode counter corruption in error cases 2011-06-03 18:12:31 +03:00
ubifs-media.h UBIFS: add a superblock flag for free space fix-up 2011-05-16 14:12:14 +03:00
ubifs.h UBIFS: amend ubifs_recover_leb interface 2011-06-01 12:29:06 +03:00
xattr.c UBIFS: make xattr operations names consistent 2011-05-13 19:23:54 +03:00