发新话题
打印

请教一个关于文件系统的问题!

请教一个关于文件系统的问题!

大家好,我是一个内核新手,最近在看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文档也没等到答案,不知道那位了解这部分内容,在这里先谢谢了!
以前没有关注过这个内容,不过,查查目录文件本身的特性。
透析真谛,似拨云穿雾;共享智慧,如春风沐浴
http://www.kerneltravel.net
发新话题