[PATCH RFC v2 0/4] 9p: fix open-unlink-f*syscall bug.
From: Jianyong Wu
Date: Wed Sep 23 2020 - 10:12:02 EST
open-unlink-f*syscall bug is well-known in 9p. We try to fix the bug
in this patch set.
I take Eric's and Greg's patches which constiute the 1/4 - 3/4 of this patch
set as the main frame of the solution. In patch 4/4, I fix the fid race issue
exists in Greg's patch.
change log:
v1 to v2:
(1) in patch 4/4: do fid refcounter down in the clunk helper.
(2) int patch 4/4: remove the enum value denoting from which of the
inode or dentry fids are allcated.
Eric Van Hensbergen (1):
fs/9p: fix create-unlink-getattr idiom
Greg Kurz (1):
fs/9p: search open fids first
Jianyong Wu (2):
fs/9p: track open fids
9p: fix race issue in fid contention.
fs/9p/fid.c | 69 ++++++++++++++++++++++++++++++++++++++---
fs/9p/fid.h | 11 ++++++-
fs/9p/vfs_dentry.c | 2 ++
fs/9p/vfs_dir.c | 6 +++-
fs/9p/vfs_file.c | 1 +
fs/9p/vfs_inode.c | 47 ++++++++++++++++++++++------
fs/9p/vfs_inode_dotl.c | 35 +++++++++++++++++----
fs/9p/vfs_super.c | 1 +
fs/9p/xattr.c | 16 ++++++++--
include/net/9p/client.h | 7 +++++
net/9p/client.c | 14 ++++++---
11 files changed, 179 insertions(+), 30 deletions(-)
--
2.17.1