patch-2.2.18 linux/fs/namei.c
Next file: linux/fs/ncpfs/dir.c
Previous file: linux/fs/locks.c
Back to the patch index
Back to the overall index
- Lines: 30
- Date:
Fri Sep 15 22:10:43 2000
- Orig file:
v2.2.17/fs/namei.c
- Orig date:
Sat Sep 9 18:42:47 2000
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/fs/namei.c linux/fs/namei.c
@@ -136,13 +136,11 @@
* for filesystem access without changing the "normal" uids which
* are used for other things..
*/
-int permission(struct inode * inode,int mask)
+int vfs_permission(struct inode * inode,int mask)
{
int mode = inode->i_mode;
- if (inode->i_op && inode->i_op->permission)
- return inode->i_op->permission(inode, mask);
- else if ((mask & S_IWOTH) && IS_RDONLY(inode) &&
+ if ((mask & S_IWOTH) && IS_RDONLY(inode) &&
(S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)))
return -EROFS; /* Nobody gets write access to a read-only fs */
else if ((mask & S_IWOTH) && IS_IMMUTABLE(inode))
@@ -159,6 +157,13 @@
if (capable(CAP_DAC_READ_SEARCH))
return 0;
return -EACCES;
+}
+
+int permission(struct inode * inode,int mask)
+{
+ if (inode->i_op && inode->i_op->permission)
+ return inode->i_op->permission(inode, mask);
+ return vfs_permission(inode, mask);
}
/*
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)