请教一个关于文件系统的问题!
大家好,我是一个内核新手,最近在看linux的文件系统,有一个关于权限验证的问题想和大家请教,问题是这样的:
在nfs文件系统中,nfs_permission函数中:
如果发现一个inode的类型是目录型文件,并且要求检查对这个文件的只写权限时,函数直接返回了,说不需要检查权限,内核代码中还给了一些注释,但是我看不懂,希望大家能给提供帮助:
代码在fs/nfs/dir.c中
switch (inode->i_mode & S_IFMT) {
case S_IFLNK:
goto out;
case S_IFREG:
/* NFSv4 has atomic_open... */
if (nfs_server_capable(inode, NFS_CAP_ATOMIC_OPEN)
&& nd != NULL && (nd->flags & LOOKUP_OPEN))
goto out;
break;
case S_IFDIR:
/*
* Optimize away all write operations, since the server
* will check permissions when we perform the op.
*/
if ((mask & MAY_WRITE) && !(mask & MAY_READ))
goto out;
}
就蓝色的这部分代码,他说优化了所有的写操作,因为服务器会在这个操作时检测权限。我看nfs的rfc文档也没等到答案,不知道那位了解这部分内容,在这里先谢谢了!