diff options
author | Jiri Kosina <jkosina@suse.cz> | 2011-05-18 11:06:31 -0400 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2011-05-18 11:06:49 -0400 |
commit | 6b7b8e488bbdedeccabdd001a78ffcbe43bb8a3a (patch) | |
tree | f2f77cc31b4548745778fca6a51b09e1d8a49804 /fs/btrfs/acl.c | |
parent | b50f315cbb865079a16a12fd9ae6083f98fd592c (diff) | |
parent | c1d10d18c542278b7fbc413c289d3cb6219da6b3 (diff) |
Merge branch 'master' into upstream.
This is sync with Linus' tree to receive KEY_IMAGES definition
that went in through input tree.
Diffstat (limited to 'fs/btrfs/acl.c')
-rw-r--r-- | fs/btrfs/acl.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index 9c949348510b..44ea5b92e1ba 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c | |||
@@ -170,7 +170,7 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name, | |||
170 | int ret; | 170 | int ret; |
171 | struct posix_acl *acl = NULL; | 171 | struct posix_acl *acl = NULL; |
172 | 172 | ||
173 | if (!is_owner_or_cap(dentry->d_inode)) | 173 | if (!inode_owner_or_capable(dentry->d_inode)) |
174 | return -EPERM; | 174 | return -EPERM; |
175 | 175 | ||
176 | if (!IS_POSIXACL(dentry->d_inode)) | 176 | if (!IS_POSIXACL(dentry->d_inode)) |
@@ -178,16 +178,18 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name, | |||
178 | 178 | ||
179 | if (value) { | 179 | if (value) { |
180 | acl = posix_acl_from_xattr(value, size); | 180 | acl = posix_acl_from_xattr(value, size); |
181 | if (acl == NULL) { | 181 | if (IS_ERR(acl)) |
182 | value = NULL; | ||
183 | size = 0; | ||
184 | } else if (IS_ERR(acl)) { | ||
185 | return PTR_ERR(acl); | 182 | return PTR_ERR(acl); |
183 | |||
184 | if (acl) { | ||
185 | ret = posix_acl_valid(acl); | ||
186 | if (ret) | ||
187 | goto out; | ||
186 | } | 188 | } |
187 | } | 189 | } |
188 | 190 | ||
189 | ret = btrfs_set_acl(NULL, dentry->d_inode, acl, type); | 191 | ret = btrfs_set_acl(NULL, dentry->d_inode, acl, type); |
190 | 192 | out: | |
191 | posix_acl_release(acl); | 193 | posix_acl_release(acl); |
192 | 194 | ||
193 | return ret; | 195 | return ret; |