diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-10-06 16:49:00 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-10-06 16:49:00 -0700 |
commit | 46811b5cb369fe638665b805f3c84683f78e5379 (patch) | |
tree | 4170214a5ceb5c4172fc10967e1c03d3991b99ef /fs/inode.c | |
parent | ffb39098bf87db327b2be4b5c6f1087bcba94ce9 (diff) | |
parent | 2e488f13755ffbb60f307e991b27024716a33b29 (diff) |
Merge tag 'pull-inode' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs inode update from Al Viro:
"Saner inode_init_always(), also fixing a nilfs problem"
* tag 'pull-inode' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
fs: fix UAF/GPF bug in nilfs_mdt_destroy
Diffstat (limited to 'fs/inode.c')
-rw-r--r-- | fs/inode.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/inode.c b/fs/inode.c index ba1de23c13c1..b608528efd3a 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -192,8 +192,6 @@ int inode_init_always(struct super_block *sb, struct inode *inode) inode->i_wb_frn_history = 0; #endif - if (security_inode_alloc(inode)) - goto out; spin_lock_init(&inode->i_lock); lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); @@ -228,11 +226,12 @@ int inode_init_always(struct super_block *sb, struct inode *inode) inode->i_fsnotify_mask = 0; #endif inode->i_flctx = NULL; + + if (unlikely(security_inode_alloc(inode))) + return -ENOMEM; this_cpu_inc(nr_inodes); return 0; -out: - return -ENOMEM; } EXPORT_SYMBOL(inode_init_always); |