395 Star 1.4K Fork 1.3K

GVPopenEuler / kernel

 / 详情

【openEuler-1.0-LTS】fuse: revalidate: don't invalidate if interrupted

已完成
任务
创建于  
2023-08-31 21:40

LTS 补丁回合:

00260209e140a fuse: revalidate: don't invalidate if interrupted

If the LOOKUP request triggered from fuse_dentry_revalidate() is
interrupted, then the dentry will be invalidated, possibly resulting in
submounts being unmounted.

diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index 6098e0c7f87b..0e03adbcf942 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -232,7 +232,7 @@ static int fuse_dentry_revalidate(struct dentry *entry, unsigned int flags)
spin_unlock(&fc->lock);
}
kfree(forget);

  •           if (ret == -ENOMEM)
    
  •           if (ret == -ENOMEM || ret == -EINTR)
                      goto out;
              if (ret || fuse_invalid_attr(&outarg.attr) ||
                  (outarg.attr.mode ^ inode->i_mode) & S_IFMT)
    

lookup_fast/slow
d_revalidate
fuse_simple_request
fuse_request_send
request_wait_answer
# 如果返回-EINTR
goto invalid; # reuturn 0;
......
# 如果d_revalidate返回0
d_invalidate
detach_mounts # 可能导致卸载 bind mounted
__detach_mounts

评论 (1)

WangZhaoLong 创建了任务

Hi wangzhaolong1, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers.

openeuler-ci-bot 添加了
 
sig/Kernel
标签
WangZhaoLong 修改了描述
ci-robot 通过openeuler/kernel Pull Request !1955任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
5329419 openeuler ci bot 1632792936
C
1
https://gitee.com/openeuler/kernel.git
git@gitee.com:openeuler/kernel.git
openeuler
kernel
kernel

搜索帮助