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 d733b9cfea34..69565e5fc6a0 100644 --- a/fs/btrfs/xattr.c +++ b/fs/btrfs/xattr.c | |||
| @@ -116,6 +116,12 @@ static int do_setxattr(struct btrfs_trans_handle *trans, | |||
| 116 | if (ret) | 116 | if (ret) |
| 117 | goto out; | 117 | goto out; |
| 118 | btrfs_release_path(path); | 118 | btrfs_release_path(path); |
| 119 | |||
| 120 | /* | ||
| 121 | * remove the attribute | ||
| 122 | */ | ||
| 123 | if (!value) | ||
| 124 | goto out; | ||
| 119 | } | 125 | } |
| 120 | 126 | ||
| 121 | again: | 127 | again: |
| @@ -158,6 +164,9 @@ out: | |||
| 158 | return ret; | 164 | return ret; |
| 159 | } | 165 | } |
| 160 | 166 | ||
| 167 | /* | ||
| 168 | * @value: "" makes the attribute to empty, NULL removes it | ||
| 169 | */ | ||
| 161 | int __btrfs_setxattr(struct btrfs_trans_handle *trans, | 170 | int __btrfs_setxattr(struct btrfs_trans_handle *trans, |
| 162 | struct inode *inode, const char *name, | 171 | struct inode *inode, const char *name, |
| 163 | const void *value, size_t size, int flags) | 172 | const void *value, size_t size, int flags) |
