The d_set_mounted() doesn't change anything in the filesystem other than setting the DCACHE_MOUNTED flag in the mount point's dentry which is protected by d_lock anyway. So we can safely replace write_seqlock/write_sequnlock by read_seqlock_excl/read_sequnlock_excl. Signed-off-by: Waiman Long <Waiman.Long@xxxxxx> --- fs/dcache.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/dcache.c b/fs/dcache.c index 06f6585..bfdd8af 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -1207,7 +1207,7 @@ int d_set_mounted(struct dentry *dentry) { struct dentry *p; int ret = -ENOENT; - write_seqlock(&rename_lock); + read_seqlock_excl(&rename_lock); for (p = dentry->d_parent; !IS_ROOT(p); p = p->d_parent) { /* Need exclusion wrt. check_submounts_and_drop() */ spin_lock(&p->d_lock); @@ -1224,7 +1224,7 @@ int d_set_mounted(struct dentry *dentry) } spin_unlock(&dentry->d_lock); out: - write_sequnlock(&rename_lock); + read_sequnlock_excl(&rename_lock); return ret; } -- 1.7.1 -- 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