summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2011-04-20 20:30:40 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2011-04-21 07:34:44 -0700
commitdf7e130384efd1c732aa08648dad46687fee3d96 (patch)
tree7dd8f9f0fe4cdcb27242a33783440bae5690e47e
parent584f79046780e10cb24367a691f8c28398a00e84 (diff)
downloadlinux-3.10-df7e130384efd1c732aa08648dad46687fee3d96.tar.gz
linux-3.10-df7e130384efd1c732aa08648dad46687fee3d96.tar.bz2
linux-3.10-df7e130384efd1c732aa08648dad46687fee3d96.zip
vfs: Pass setxattr(2) flags properly
For some reason generic_setxattr() did not pass flags (XATTR_CREATE, XATTR_REPLACE) to the filesystem specific helper. This caused that setxattr(2) syscall just ignored these flags. Fix the bug by passing flags correctly. Signed-off-by: Jan Kara <jack@suse.cz> Acked-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/xattr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xattr.c b/fs/xattr.c
index a19acdb81cd..f1ef94974de 100644
--- a/fs/xattr.c
+++ b/fs/xattr.c
@@ -666,7 +666,7 @@ generic_setxattr(struct dentry *dentry, const char *name, const void *value, siz
handler = xattr_resolve_name(dentry->d_sb->s_xattr, &name);
if (!handler)
return -EOPNOTSUPP;
- return handler->set(dentry, name, value, size, 0, handler->flags);
+ return handler->set(dentry, name, value, size, flags, handler->flags);
}
/*