X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=fs%2Fbtrfs%2Facl.c;h=44ea5b92e1ba891181235a24ba53785ff7acbfa0;hp=de34bfad9ec3cab33f35ead4f31d9605f48af66c;hb=eed631e0d741d1a1067cfc6d709fdf2363126f9c;hpb=18770c7c3a0ccd60017ac76b5d2e7d1f71376b94 diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index de34bfad9ec3..44ea5b92e1ba 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c @@ -178,16 +178,18 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name, if (value) { acl = posix_acl_from_xattr(value, size); - if (acl == NULL) { - value = NULL; - size = 0; - } else if (IS_ERR(acl)) { + if (IS_ERR(acl)) return PTR_ERR(acl); + + if (acl) { + ret = posix_acl_valid(acl); + if (ret) + goto out; } } ret = btrfs_set_acl(NULL, dentry->d_inode, acl, type); - +out: posix_acl_release(acl); return ret;