diff options
Diffstat (limited to 'fs/xfs/libxfs/xfs_attr.c')
| -rw-r--r-- | fs/xfs/libxfs/xfs_attr.c | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c index 836ab1b8ed7b..1824f61621a2 100644 --- a/fs/xfs/libxfs/xfs_attr.c +++ b/fs/xfs/libxfs/xfs_attr.c @@ -997,9 +997,11 @@ xfs_attr_set(  	/*  	 * We have no control over the attribute names that userspace passes us  	 * to remove, so we have to allow the name lookup prior to attribute -	 * removal to fail as well. +	 * removal to fail as well.  Preserve the logged flag, since we need +	 * to pass that through to the logging code.  	 */ -	args->op_flags = XFS_DA_OP_OKNOENT; +	args->op_flags = XFS_DA_OP_OKNOENT | +					(args->op_flags & XFS_DA_OP_LOGGED);  	if (args->value) {  		XFS_STATS_INC(mp, xs_attr_set); @@ -1439,12 +1441,11 @@ static int  xfs_attr_node_try_addname(  	struct xfs_attr_intent		*attr)  { -	struct xfs_da_args		*args = attr->xattri_da_args;  	struct xfs_da_state		*state = attr->xattri_da_state;  	struct xfs_da_state_blk		*blk;  	int				error; -	trace_xfs_attr_node_addname(args); +	trace_xfs_attr_node_addname(state->args);  	blk = &state->path.blk[state->path.active-1];  	ASSERT(blk->magic == XFS_ATTR_LEAF_MAGIC);  | 
