fs: dcache reduce locking in d_alloc
authorNick Piggin <npiggin@kernel.dk>
Fri, 7 Jan 2011 06:49:41 +0000 (17:49 +1100)
committerNick Piggin <npiggin@kernel.dk>
Fri, 7 Jan 2011 06:50:24 +0000 (17:50 +1100)
Signed-off-by: Nick Piggin <npiggin@kernel.dk>
fs/dcache.c

index 98a0569..ccdc5c2 100644 (file)
@@ -1253,11 +1253,13 @@ struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
 
        if (parent) {
                spin_lock(&parent->d_lock);
-               spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
+               /*
+                * don't need child lock because it is not subject
+                * to concurrency here
+                */
                dentry->d_parent = dget_dlock(parent);
                dentry->d_sb = parent->d_sb;
                list_add(&dentry->d_u.d_child, &parent->d_subdirs);
-               spin_unlock(&dentry->d_lock);
                spin_unlock(&parent->d_lock);
        }