diff options
Diffstat (limited to 'fs/btrfs/xattr.c')
| -rw-r--r-- | fs/btrfs/xattr.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c index d733b9cfea3..69565e5fc6a 100644 --- a/fs/btrfs/xattr.c +++ b/fs/btrfs/xattr.c @@ -116,6 +116,12 @@ static int do_setxattr(struct btrfs_trans_handle *trans,  		if (ret)  			goto out;  		btrfs_release_path(path); + +		/* +		 * remove the attribute +		 */ +		if (!value) +			goto out;  	}  again: @@ -158,6 +164,9 @@ out:  	return ret;  } +/* + * @value: "" makes the attribute to empty, NULL removes it + */  int __btrfs_setxattr(struct btrfs_trans_handle *trans,  		     struct inode *inode, const char *name,  		     const void *value, size_t size, int flags)  |