diff options
Diffstat (limited to 'fs/reiserfs/xattr.c')
-rw-r--r-- | fs/reiserfs/xattr.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c index 4f0db4e54517..2f085845f670 100644 --- a/fs/reiserfs/xattr.c +++ b/fs/reiserfs/xattr.c | |||
@@ -1319,9 +1319,7 @@ int reiserfs_xattr_init(struct super_block *s, int mount_flags) | |||
1319 | return err; | 1319 | return err; |
1320 | } | 1320 | } |
1321 | 1321 | ||
1322 | static int | 1322 | int reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd) |
1323 | __reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd, | ||
1324 | int need_lock) | ||
1325 | { | 1323 | { |
1326 | umode_t mode = inode->i_mode; | 1324 | umode_t mode = inode->i_mode; |
1327 | 1325 | ||
@@ -1357,15 +1355,14 @@ __reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd, | |||
1357 | if (!(mode & S_IRWXG)) | 1355 | if (!(mode & S_IRWXG)) |
1358 | goto check_groups; | 1356 | goto check_groups; |
1359 | 1357 | ||
1360 | if (need_lock) { | 1358 | reiserfs_read_lock_xattr_i(inode); |
1361 | reiserfs_read_lock_xattr_i(inode); | 1359 | reiserfs_read_lock_xattrs(inode->i_sb); |
1362 | reiserfs_read_lock_xattrs(inode->i_sb); | 1360 | |
1363 | } | ||
1364 | acl = reiserfs_get_acl(inode, ACL_TYPE_ACCESS); | 1361 | acl = reiserfs_get_acl(inode, ACL_TYPE_ACCESS); |
1365 | if (need_lock) { | 1362 | |
1366 | reiserfs_read_unlock_xattrs(inode->i_sb); | 1363 | reiserfs_read_unlock_xattrs(inode->i_sb); |
1367 | reiserfs_read_unlock_xattr_i(inode); | 1364 | reiserfs_read_unlock_xattr_i(inode); |
1368 | } | 1365 | |
1369 | if (IS_ERR(acl)) { | 1366 | if (IS_ERR(acl)) { |
1370 | if (PTR_ERR(acl) == -ENODATA) | 1367 | if (PTR_ERR(acl) == -ENODATA) |
1371 | goto check_groups; | 1368 | goto check_groups; |
@@ -1414,14 +1411,3 @@ __reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd, | |||
1414 | 1411 | ||
1415 | return -EACCES; | 1412 | return -EACCES; |
1416 | } | 1413 | } |
1417 | |||
1418 | int reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd) | ||
1419 | { | ||
1420 | return __reiserfs_permission(inode, mask, nd, 1); | ||
1421 | } | ||
1422 | |||
1423 | int | ||
1424 | reiserfs_permission_locked(struct inode *inode, int mask, struct nameidata *nd) | ||
1425 | { | ||
1426 | return __reiserfs_permission(inode, mask, nd, 0); | ||
1427 | } | ||