mirror of https://gitee.com/openkylin/linux.git
c959df9f01
v9fs_insert uses v9fs_fid_lookup (which also locks the fid) to get the primary fid associated with the dentry and destroys the v9fs_fid struct after removing the file. If another process called v9fs_fid_lookup on the same dentry, it may wait undefinitely for the fid's lock (as the struct is freed). This patch changes v9fs_remove to use a cloned fid, so the primary fid is not locked and freed. Signed-off-by: Latchesar Ionkov <lucho@ionkov.net> Cc: Eric Van Hensbergen <ericvh@hera.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
9p.h | ||
Makefile | ||
conv.c | ||
conv.h | ||
debug.h | ||
error.c | ||
error.h | ||
fcall.c | ||
fcprint.c | ||
fid.c | ||
fid.h | ||
mux.c | ||
mux.h | ||
trans_fd.c | ||
transport.h | ||
v9fs.c | ||
v9fs.h | ||
v9fs_vfs.h | ||
vfs_addr.c | ||
vfs_dentry.c | ||
vfs_dir.c | ||
vfs_file.c | ||
vfs_inode.c | ||
vfs_super.c |