Commit 4815053aba7f2304055745df820cd74a39fdaab2
Committed by
Chris Mason
1 parent
a39f752143
Exists in
master
and in
4 other branches
btrfs: xattr: fix attribute removal
An attribute is not removed by 'setfattr -x attr file' and remains visible in attr list. This makes xfstests/062 pass again. Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Showing 1 changed file with 9 additions and 0 deletions Side-by-side Diff
fs/btrfs/xattr.c
... | ... | @@ -116,6 +116,12 @@ |
116 | 116 | if (ret) |
117 | 117 | goto out; |
118 | 118 | btrfs_release_path(path); |
119 | + | |
120 | + /* | |
121 | + * remove the attribute | |
122 | + */ | |
123 | + if (!value) | |
124 | + goto out; | |
119 | 125 | } |
120 | 126 | |
121 | 127 | again: |
... | ... | @@ -158,6 +164,9 @@ |
158 | 164 | return ret; |
159 | 165 | } |
160 | 166 | |
167 | +/* | |
168 | + * @value: "" makes the attribute to empty, NULL removes it | |
169 | + */ | |
161 | 170 | int __btrfs_setxattr(struct btrfs_trans_handle *trans, |
162 | 171 | struct inode *inode, const char *name, |
163 | 172 | const void *value, size_t size, int flags) |