Message ID | 4C513B64.6020805@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index 2f4f65a..bb35580 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c @@ -169,16 +169,17 @@ 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 (acl) { + ret = posix_acl_valid(acl); + if (ret) + goto out; + } else if (IS_ERR(acl)) return PTR_ERR(acl); - } } ret = btrfs_set_acl(NULL, dentry->d_inode, acl, type); +out: posix_acl_release(acl); return ret;