小编don*_*don的帖子

断开连接时,尝试访问使用CIFS挂载的远程文件夹挂起

这个问题是延期这个问题.

再说一遍:我在CentOS 6.0下工作,我有一个远程win7文件夹,安装有:

mount -t cifs //PC128/mnt /media/net -o "username=WORKGROUP\user,password=pwd,rw,noexec,soft,uid=user,gid=user"
Run Code Online (Sandbox Code Playgroud)

当远程文件夹不可用时(例如,拉出网络电缆),尝试访问远程文件夹会锁定我正在处理的应用程序.起初我检测到QDir :: exists()导致锁定20-90秒(我仍然无法找出为什么会出现这种差异),进一步我发现任何对stat()函数的调用都会导致应用程序锁定.

我按照上面的主题提供的建议,我将QDir :: exists()调用(以及稍后 - 调用stat()函数)移动到另一个线程,这并没有解决问题.当连接突然丢失时,应用程序仍然挂起.Qt trace显示锁在内核中的某个位置:

0   __kernel_vsyscall
1   __xstat64@GLIBC_2.1               /lib/libc.so.6
2   QFSFileEnginePrivate::doStat      stat.h
Run Code Online (Sandbox Code Playgroud)

在尝试访问文件夹本身之前,我还尝试检查是否仍然挂载了远程共享,但它没有帮助.方法如:

mount | grep /media/net
Run Code Online (Sandbox Code Playgroud)

显示即使没有与网络的活动连接,仍然会挂载共享文件夹.

检查文件夹状态差异,例如:

stat -fc%t:%T /media/net/ != stat -fc%t:%T /media/net/..
Run Code Online (Sandbox Code Playgroud)

也挂了~20秒.

所以我有几个问题:

  1. 有没有办法改变CIFS超时?我确实试图找出,但似乎没有适当的参数和没有CIFS配置.
  2. 如何检查远程文件夹是否仍然挂载且未锁定?
  3. 如何查看文件夹是否存在且未锁定?

samba share mount centos cifs

2
推荐指数
1
解决办法
5131
查看次数

标签 统计

centos ×1

cifs ×1

mount ×1

samba ×1

share ×1