]> git.baikalelectronics.ru Git - kernel.git/commit
[patch 3/3] vfs: make d_path() consistent across mount operations
authorAndreas Gruenbacher <agruen@suse.de>
Mon, 16 Jun 2008 11:28:07 +0000 (13:28 +0200)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 23 Jun 2008 17:06:13 +0000 (13:06 -0400)
commit76bfb1b0cad4b2848d2feec16984d751af20d4e1
tree3143d1d4c49c68ebb59815d03a5c79e9e3290a91
parent1d6196f280ad054fc21a7ff7adc6a5856459cf01
[patch 3/3] vfs: make d_path() consistent across mount operations

The path that __d_path() computes can become slightly inconsistent when it
races with mount operations: it grabs the vfsmount_lock when traversing mount
points but immediately drops it again, only to re-grab it when it reaches the
next mount point.  The result is that the filename computed is not always
consisent, and the file may never have had that name. (This is unlikely, but
still possible.)

Fix this by grabbing the vfsmount_lock for the whole duration of
__d_path().

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: John Johansen <jjohansen@suse.de>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Acked-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/dcache.c