mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 01:04:41 +01:00
btrfs: pass struct btrfs_inode to btrfs_inode_inherit_props()
Pass a struct btrfs_inode to btrfs_inherit_props() as it's an internal interface, allowing to remove some use of BTRFS_I. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
308a02a447
commit
101ab6d1ff
3 changed files with 17 additions and 17 deletions
|
|
@ -6461,11 +6461,13 @@ int btrfs_create_new_inode(struct btrfs_trans_handle *trans,
|
|||
if (IS_ERR(parent)) {
|
||||
ret = PTR_ERR(parent);
|
||||
} else {
|
||||
ret = btrfs_inode_inherit_props(trans, inode, parent);
|
||||
ret = btrfs_inode_inherit_props(trans, BTRFS_I(inode),
|
||||
BTRFS_I(parent));
|
||||
iput(parent);
|
||||
}
|
||||
} else {
|
||||
ret = btrfs_inode_inherit_props(trans, inode, dir);
|
||||
ret = btrfs_inode_inherit_props(trans, BTRFS_I(inode),
|
||||
BTRFS_I(dir));
|
||||
}
|
||||
if (ret) {
|
||||
btrfs_err(fs_info,
|
||||
|
|
|
|||
|
|
@ -386,16 +386,16 @@ static struct prop_handler prop_handlers[] = {
|
|||
};
|
||||
|
||||
int btrfs_inode_inherit_props(struct btrfs_trans_handle *trans,
|
||||
struct inode *inode, const struct inode *parent)
|
||||
struct btrfs_inode *inode,
|
||||
const struct btrfs_inode *parent)
|
||||
{
|
||||
struct btrfs_root *root = BTRFS_I(inode)->root;
|
||||
struct btrfs_root *root = inode->root;
|
||||
struct btrfs_fs_info *fs_info = root->fs_info;
|
||||
int ret;
|
||||
int i;
|
||||
bool need_reserve = false;
|
||||
|
||||
if (!test_bit(BTRFS_INODE_HAS_PROPS,
|
||||
&BTRFS_I(parent)->runtime_flags))
|
||||
if (!test_bit(BTRFS_INODE_HAS_PROPS, &parent->runtime_flags))
|
||||
return 0;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) {
|
||||
|
|
@ -406,10 +406,10 @@ int btrfs_inode_inherit_props(struct btrfs_trans_handle *trans,
|
|||
if (!h->inheritable)
|
||||
continue;
|
||||
|
||||
if (h->ignore(BTRFS_I(inode)))
|
||||
if (h->ignore(inode))
|
||||
continue;
|
||||
|
||||
value = h->extract(parent);
|
||||
value = h->extract(&parent->vfs_inode);
|
||||
if (!value)
|
||||
continue;
|
||||
|
||||
|
|
@ -417,7 +417,7 @@ int btrfs_inode_inherit_props(struct btrfs_trans_handle *trans,
|
|||
* This is not strictly necessary as the property should be
|
||||
* valid, but in case it isn't, don't propagate it further.
|
||||
*/
|
||||
ret = h->validate(BTRFS_I(inode), value, strlen(value));
|
||||
ret = h->validate(inode, value, strlen(value));
|
||||
if (ret)
|
||||
continue;
|
||||
|
||||
|
|
@ -437,16 +437,15 @@ int btrfs_inode_inherit_props(struct btrfs_trans_handle *trans,
|
|||
return ret;
|
||||
}
|
||||
|
||||
ret = btrfs_setxattr(trans, inode, h->xattr_name, value,
|
||||
ret = btrfs_setxattr(trans, &inode->vfs_inode, h->xattr_name, value,
|
||||
strlen(value), 0);
|
||||
if (!ret) {
|
||||
ret = h->apply(inode, value, strlen(value));
|
||||
ret = h->apply(&inode->vfs_inode, value, strlen(value));
|
||||
if (ret)
|
||||
btrfs_setxattr(trans, inode, h->xattr_name,
|
||||
btrfs_setxattr(trans, &inode->vfs_inode, h->xattr_name,
|
||||
NULL, 0, 0);
|
||||
else
|
||||
set_bit(BTRFS_INODE_HAS_PROPS,
|
||||
&BTRFS_I(inode)->runtime_flags);
|
||||
set_bit(BTRFS_INODE_HAS_PROPS, &inode->runtime_flags);
|
||||
}
|
||||
|
||||
if (need_reserve) {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/compiler_types.h>
|
||||
|
||||
struct inode;
|
||||
struct btrfs_inode;
|
||||
struct btrfs_path;
|
||||
struct btrfs_trans_handle;
|
||||
|
|
@ -26,7 +25,7 @@ bool btrfs_ignore_prop(const struct btrfs_inode *inode, const char *name);
|
|||
int btrfs_load_inode_props(struct btrfs_inode *inode, struct btrfs_path *path);
|
||||
|
||||
int btrfs_inode_inherit_props(struct btrfs_trans_handle *trans,
|
||||
struct inode *inode,
|
||||
const struct inode *dir);
|
||||
struct btrfs_inode *inode,
|
||||
const struct btrfs_inode *dir);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue