免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1352 | 回复: 0
打印 上一主题 下一主题

[文件系统] __d_find_alias疑问 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-06-11 22:59 |只看该作者 |倒序浏览
照这段代码的意思,如果我调用__d_find_alias时,inode是一个文件,而且want_discon == 1,那必然会返回NULL,
文件inode里的i_dentry不可能有DISCONNECTED的dentry吗?

  1. static struct dentry * __d_find_alias(struct inode *inode, int want_discon)
  2. {
  3.         struct list_head *head, *next, *tmp;
  4.         struct dentry *alias, *discon_alias=NULL;

  5.         head = &inode->i_dentry;
  6.         next = inode->i_dentry.next;
  7.         while (next != head) {
  8.                 tmp = next;
  9.                 next = tmp->next;
  10.                 prefetch(next);
  11.                 alias = list_entry(tmp, struct dentry, d_alias);
  12.                 if (S_ISDIR(inode->i_mode) || !d_unhashed(alias)) {
  13.                         if (IS_ROOT(alias) &&
  14.                             (alias->d_flags & DCACHE_DISCONNECTED))
  15.                                 discon_alias = alias;
  16.                         else if (!want_discon) {
  17.                                 __dget_locked(alias);
  18.                                 return alias;
  19.                         }
  20.                 }
  21.         }
  22.         if (discon_alias)
  23.                 __dget_locked(discon_alias);
  24.         return discon_alias;
  25. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP