Re introduces a DCACHE_DENTRY_UNHASHED flag to solve a race with checking a unhashed state vs rename. Bug found while a Cray Lustre testing but looks not a FS specific, du comment in dcache.h > Any filesystem which supports nfsd_operations MUST have a lookup function which, > if it finds a directory inode with a DCACHE_DISCONNECTED dentry, will d_move > that dentry into place and return that dentry rather than the passed one, > typically using d_splice_alias. * So potentially any FS will affected. v3 fix build for Infiniband and powerpc platform v2 avoid to use a sequence lock from d_unhashed check, due large number problems while d_unhashed checked with any spinlock hold. v1 inital version, sequence lock protection for d_unashed check. --- Alexey Lyashkov (2): Re introduces a DCACHE_DENTRY_UNHASHED flag cleanup of d_unhashed usage. arch/powerpc/platforms/cell/spufs/inode.c | 2 + drivers/infiniband/hw/qib/qib_fs.c | 2 + .../staging/lustre/lustre/llite/llite_internal.h | 2 + fs/configfs/inode.c | 2 + fs/dcache.c | 36 ++++++++++---------- fs/nfs/dir.c | 2 + include/linux/dcache.h | 6 ++- 7 files changed, 27 insertions(+), 25 deletions(-) -- Alexey -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html