Commit 4815053aba7f2304055745df820cd74a39fdaab2

Authored by David Sterba
Committed by Chris Mason
1 parent a39f752143

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

... ... @@ -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)