mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
btrfs: pass a btrfs_inode to btrfs_set_prop()
Pass a struct btrfs_inode to btrfs_set_prop() as it's an internal interface, allowing to remove some use of BTRFS_I. Reviewed-by: Boris Burkov <boris@bur.io> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
e2877c2a03
commit
0d9b7e166a
@ -375,15 +375,15 @@ int btrfs_fileattr_set(struct mnt_idmap *idmap,
|
||||
return PTR_ERR(trans);
|
||||
|
||||
if (comp) {
|
||||
ret = btrfs_set_prop(trans, inode, "btrfs.compression", comp,
|
||||
strlen(comp), 0);
|
||||
ret = btrfs_set_prop(trans, BTRFS_I(inode), "btrfs.compression",
|
||||
comp, strlen(comp), 0);
|
||||
if (ret) {
|
||||
btrfs_abort_transaction(trans, ret);
|
||||
goto out_end_trans;
|
||||
}
|
||||
} else {
|
||||
ret = btrfs_set_prop(trans, inode, "btrfs.compression", NULL,
|
||||
0, 0);
|
||||
ret = btrfs_set_prop(trans, BTRFS_I(inode), "btrfs.compression",
|
||||
NULL, 0, 0);
|
||||
if (ret && ret != -ENODATA) {
|
||||
btrfs_abort_transaction(trans, ret);
|
||||
goto out_end_trans;
|
||||
|
@ -104,7 +104,7 @@ bool btrfs_ignore_prop(const struct btrfs_inode *inode, const char *name)
|
||||
return handler->ignore(inode);
|
||||
}
|
||||
|
||||
int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode,
|
||||
int btrfs_set_prop(struct btrfs_trans_handle *trans, struct btrfs_inode *inode,
|
||||
const char *name, const char *value, size_t value_len,
|
||||
int flags)
|
||||
{
|
||||
@ -116,29 +116,29 @@ int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode,
|
||||
return -EINVAL;
|
||||
|
||||
if (value_len == 0) {
|
||||
ret = btrfs_setxattr(trans, inode, handler->xattr_name,
|
||||
ret = btrfs_setxattr(trans, &inode->vfs_inode, handler->xattr_name,
|
||||
NULL, 0, flags);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = handler->apply(inode, NULL, 0);
|
||||
ret = handler->apply(&inode->vfs_inode, NULL, 0);
|
||||
ASSERT(ret == 0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = btrfs_setxattr(trans, inode, handler->xattr_name, value,
|
||||
ret = btrfs_setxattr(trans, &inode->vfs_inode, handler->xattr_name, value,
|
||||
value_len, flags);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = handler->apply(inode, value, value_len);
|
||||
ret = handler->apply(&inode->vfs_inode, value, value_len);
|
||||
if (ret) {
|
||||
btrfs_setxattr(trans, inode, handler->xattr_name, NULL,
|
||||
btrfs_setxattr(trans, &inode->vfs_inode, handler->xattr_name, NULL,
|
||||
0, flags);
|
||||
return ret;
|
||||
}
|
||||
|
||||
set_bit(BTRFS_INODE_HAS_PROPS, &BTRFS_I(inode)->runtime_flags);
|
||||
set_bit(BTRFS_INODE_HAS_PROPS, &inode->runtime_flags);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ struct btrfs_trans_handle;
|
||||
|
||||
int __init btrfs_props_init(void);
|
||||
|
||||
int btrfs_set_prop(struct btrfs_trans_handle *trans, struct inode *inode,
|
||||
int btrfs_set_prop(struct btrfs_trans_handle *trans, struct btrfs_inode *inode,
|
||||
const char *name, const char *value, size_t value_len,
|
||||
int flags);
|
||||
int btrfs_validate_prop(const struct btrfs_inode *inode, const char *name,
|
||||
|
@ -451,7 +451,7 @@ static int btrfs_xattr_handler_set_prop(const struct xattr_handler *handler,
|
||||
if (IS_ERR(trans))
|
||||
return PTR_ERR(trans);
|
||||
|
||||
ret = btrfs_set_prop(trans, inode, name, value, size, flags);
|
||||
ret = btrfs_set_prop(trans, BTRFS_I(inode), name, value, size, flags);
|
||||
if (!ret) {
|
||||
inode_inc_iversion(inode);
|
||||
inode_set_ctime_current(inode);
|
||||
|
Loading…
Reference in New Issue
Block a user