v9fs: don't use primary fid when removing file
authorLatchesar Ionkov <lucho@ionkov.net>
Mon, 23 Apr 2007 21:41:11 +0000 (14:41 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 24 Apr 2007 15:23:08 +0000 (08:23 -0700)
commitc959df9f01cfb2f43b4d1f58631ee1e9c50541b6
tree79d8d52914ed1f8a96f124f267ebe44c1630e3b4
parentf51a5a9de86a948b9a30daab90fb003f51446dcd
v9fs: don't use primary fid when removing file

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>
fs/9p/vfs_inode.c