diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-08-28 15:04:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-08 14:08:46 -0400 |
commit | 6d848a488ad83cc3891bb274691118f45ce6aab9 (patch) | |
tree | c775e9ada5e3613174103b0919561b4b4d2d3b7e /mm | |
parent | 5909ccaa300a4a834ffa275327af4df0b9cb5295 (diff) |
shmfs: use 'check_acl' instead of 'permission'
shmfs wants purely standard POSIX ACL semantics, so we can use the new
generic VFS layer POSIX ACL checking rather than cooking our own
'permission()' function.
Reviewed-by: James Morris <jmorris@namei.org>
Acked-by: Serge Hallyn <serue@us.ibm.com>
Acked-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/shmem.c | 6 | ||||
-rw-r--r-- | mm/shmem_acl.c | 11 |
2 files changed, 4 insertions, 13 deletions
diff --git a/mm/shmem.c b/mm/shmem.c index d713239ce2ce..5a0b3d4055f3 100644 --- a/mm/shmem.c +++ b/mm/shmem.c | |||
@@ -2446,7 +2446,7 @@ static const struct inode_operations shmem_inode_operations = { | |||
2446 | .getxattr = generic_getxattr, | 2446 | .getxattr = generic_getxattr, |
2447 | .listxattr = generic_listxattr, | 2447 | .listxattr = generic_listxattr, |
2448 | .removexattr = generic_removexattr, | 2448 | .removexattr = generic_removexattr, |
2449 | .permission = shmem_permission, | 2449 | .check_acl = shmem_check_acl, |
2450 | #endif | 2450 | #endif |
2451 | 2451 | ||
2452 | }; | 2452 | }; |
@@ -2469,7 +2469,7 @@ static const struct inode_operations shmem_dir_inode_operations = { | |||
2469 | .getxattr = generic_getxattr, | 2469 | .getxattr = generic_getxattr, |
2470 | .listxattr = generic_listxattr, | 2470 | .listxattr = generic_listxattr, |
2471 | .removexattr = generic_removexattr, | 2471 | .removexattr = generic_removexattr, |
2472 | .permission = shmem_permission, | 2472 | .check_acl = shmem_check_acl, |
2473 | #endif | 2473 | #endif |
2474 | }; | 2474 | }; |
2475 | 2475 | ||
@@ -2480,7 +2480,7 @@ static const struct inode_operations shmem_special_inode_operations = { | |||
2480 | .getxattr = generic_getxattr, | 2480 | .getxattr = generic_getxattr, |
2481 | .listxattr = generic_listxattr, | 2481 | .listxattr = generic_listxattr, |
2482 | .removexattr = generic_removexattr, | 2482 | .removexattr = generic_removexattr, |
2483 | .permission = shmem_permission, | 2483 | .check_acl = shmem_check_acl, |
2484 | #endif | 2484 | #endif |
2485 | }; | 2485 | }; |
2486 | 2486 | ||
diff --git a/mm/shmem_acl.c b/mm/shmem_acl.c index 606a8e757a42..df2c87fdae50 100644 --- a/mm/shmem_acl.c +++ b/mm/shmem_acl.c | |||
@@ -157,7 +157,7 @@ shmem_acl_init(struct inode *inode, struct inode *dir) | |||
157 | /** | 157 | /** |
158 | * shmem_check_acl - check_acl() callback for generic_permission() | 158 | * shmem_check_acl - check_acl() callback for generic_permission() |
159 | */ | 159 | */ |
160 | static int | 160 | int |
161 | shmem_check_acl(struct inode *inode, int mask) | 161 | shmem_check_acl(struct inode *inode, int mask) |
162 | { | 162 | { |
163 | struct posix_acl *acl = shmem_get_acl(inode, ACL_TYPE_ACCESS); | 163 | struct posix_acl *acl = shmem_get_acl(inode, ACL_TYPE_ACCESS); |
@@ -169,12 +169,3 @@ shmem_check_acl(struct inode *inode, int mask) | |||
169 | } | 169 | } |
170 | return -EAGAIN; | 170 | return -EAGAIN; |
171 | } | 171 | } |
172 | |||
173 | /** | ||
174 | * shmem_permission - permission() inode operation | ||
175 | */ | ||
176 | int | ||
177 | shmem_permission(struct inode *inode, int mask) | ||
178 | { | ||
179 | return generic_permission(inode, mask, shmem_check_acl); | ||
180 | } | ||