Commit 0d9b7e16 authored by David Sterba's avatar David Sterba
Browse files

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: default avatarBoris Burkov <boris@bur.io>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent e2877c2a
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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;
+7 −7
Original line number Diff line number Diff line
@@ -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;
}
+1 −1
Original line number Diff line number Diff line
@@ -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,
+1 −1
Original line number Diff line number Diff line
@@ -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);