]> 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)
commit1bafed0be62553d48fbe820c0b777aad38e67329
treed34501f25dd57b749816ee121a018b260f00ee58
parent86c61b5ae85e662c6bfaef05cd62c10892450962
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 2909f2103bd8 ("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