securityfs: fix object creation races
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 10 Jan 2012 15:20:35 +0000 (10:20 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 10 Jan 2012 15:20:35 +0000 (10:20 -0500)
commit3e25eb9c4bb649acdddb333d10774b640190f727
treed51009557e95437dd7b7ef6b0f3a51aacccec743
parente4e11180dfa545233e5145919b75b7fac88638df
securityfs: fix object creation races

inode needs to be fully set up before we feed it to d_instantiate().
securityfs_create_file() does *not* do so; it sets ->i_fop and
->i_private only after we'd exposed the inode.  Unfortunately,
that's done fairly deep in call chain, so the amount of churn
is considerable.  Helper functions killed by substituting into
their solitary call sites, dead code removed.  We finally can
bury default_file_ops, now that the final value of ->i_fop is
available (and assigned) at the point where inode is allocated.

Reviewed-by: James Morris <jmorris@namei.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
security/inode.c