]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: allocate inode outside of btrfs_new_inode()
authorOmar Sandoval <osandov@fb.com>
Tue, 15 Mar 2022 01:12:32 +0000 (18:12 -0700)
committerDavid Sterba <dsterba@suse.com>
Mon, 16 May 2022 15:03:08 +0000 (17:03 +0200)
commit543d721f6898c6f18958d756ad3f5ca91a3e0954
treed34501f25dd57b749816ee121a018b260f00ee58
parentf219986ce4d65dd0b9d923197bd67135cc7d0abe
btrfs: allocate inode outside of btrfs_new_inode()

Instead of calling new_inode() and inode_init_owner() inside of
btrfs_new_inode(), do it in the callers. This allows us to pass in just
the inode instead of the mnt_userns and mode and removes the need for
memalloc_nofs_{save,restores}() since we do it before starting a
transaction. In create_subvol(), it also means we no longer have to look
up the inode again to instantiate it. This also paves the way for some
more cleanups in later patches.

This also removes the comments about Smack checking i_op, which are no
longer true since commit cc1fc0c2c25f ("xattr: Add
__vfs_{get,set,remove}xattr helpers"). Now it checks inode->i_opflags &
IOP_XATTR, which is set based on sb->s_xattr.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/inode.c
fs/btrfs/ioctl.c