diff options
author | Vyacheslav Dubeyko <slava@dubeyko.com> | 2013-09-11 17:24:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-11 18:59:01 -0400 |
commit | b4c1107cc962613ea3572e5abba861a35d494b98 (patch) | |
tree | 9e83d6f00b37cb65a8e2f2ef435bead7b662c10f /fs/hfsplus/inode.c | |
parent | eef80d4ad1399067f26538a7dd56ff3df71e9278 (diff) |
hfsplus: integrate POSIX ACLs support into driver
Integrate implemented POSIX ACLs support into hfsplus driver.
Signed-off-by: Vyacheslav Dubeyko <slava@dubeyko.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Hin-Tak Leung <htl10@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/hfsplus/inode.c')
-rw-r--r-- | fs/hfsplus/inode.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/hfsplus/inode.c b/fs/hfsplus/inode.c index f833d35630ab..4d2edaea891c 100644 --- a/fs/hfsplus/inode.c +++ b/fs/hfsplus/inode.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include "hfsplus_fs.h" | 19 | #include "hfsplus_fs.h" |
20 | #include "hfsplus_raw.h" | 20 | #include "hfsplus_raw.h" |
21 | #include "xattr.h" | 21 | #include "xattr.h" |
22 | #include "acl.h" | ||
22 | 23 | ||
23 | static int hfsplus_readpage(struct file *file, struct page *page) | 24 | static int hfsplus_readpage(struct file *file, struct page *page) |
24 | { | 25 | { |
@@ -316,6 +317,13 @@ static int hfsplus_setattr(struct dentry *dentry, struct iattr *attr) | |||
316 | 317 | ||
317 | setattr_copy(inode, attr); | 318 | setattr_copy(inode, attr); |
318 | mark_inode_dirty(inode); | 319 | mark_inode_dirty(inode); |
320 | |||
321 | if (attr->ia_valid & ATTR_MODE) { | ||
322 | error = hfsplus_posix_acl_chmod(inode); | ||
323 | if (unlikely(error)) | ||
324 | return error; | ||
325 | } | ||
326 | |||
319 | return 0; | 327 | return 0; |
320 | } | 328 | } |
321 | 329 | ||
@@ -383,6 +391,9 @@ static const struct inode_operations hfsplus_file_inode_operations = { | |||
383 | .getxattr = generic_getxattr, | 391 | .getxattr = generic_getxattr, |
384 | .listxattr = hfsplus_listxattr, | 392 | .listxattr = hfsplus_listxattr, |
385 | .removexattr = hfsplus_removexattr, | 393 | .removexattr = hfsplus_removexattr, |
394 | #ifdef CONFIG_HFSPLUS_FS_POSIX_ACL | ||
395 | .get_acl = hfsplus_get_posix_acl, | ||
396 | #endif | ||
386 | }; | 397 | }; |
387 | 398 | ||
388 | static const struct file_operations hfsplus_file_operations = { | 399 | static const struct file_operations hfsplus_file_operations = { |