X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Fjfs%2Fxattr.c;h=b753ba2164508a997763ae09d60d3e59a1725ce3;hb=dddfa461fc8951f9b5f951c13565b6cac678635a;hp=4c7985ebca92505ae584d43024a8bf1c4f1cc258;hpb=97d41e90fe61399b99d74820cb7f2d6e0fbac91d;p=powerpc.git diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c index 4c7985ebca..b753ba2164 100644 --- a/fs/jfs/xattr.c +++ b/fs/jfs/xattr.c @@ -756,6 +756,11 @@ static int can_set_system_xattr(struct inode *inode, const char *name, return -EOPNOTSUPP; } +/* + * Most of the permission checking is done by xattr_permission in the vfs. + * The local file system is responsible for handling the system.* namespace. + * We also need to verify that this is a namespace that we recognize. + */ static int can_set_xattr(struct inode *inode, const char *name, const void *value, size_t value_len) { @@ -771,10 +776,6 @@ static int can_set_xattr(struct inode *inode, const char *name, strncmp(name, XATTR_OS2_PREFIX, XATTR_OS2_PREFIX_LEN)) return -EOPNOTSUPP; - if (!S_ISREG(inode->i_mode) && - (!S_ISDIR(inode->i_mode) || inode->i_mode &S_ISVTX)) - return -EPERM; - return 0; }