patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / fs / exportfs / expfs.c
index c435e0a..edde9a5 100644 (file)
@@ -155,11 +155,15 @@ find_exported_dentry(struct super_block *sb, void *obj, void *parent,
 
                if (!IS_ROOT(pd)) {
                        /* must have found a connected parent - great */
+                       spin_lock(&pd->d_lock);
                        pd->d_flags &= ~DCACHE_DISCONNECTED;
+                       spin_unlock(&pd->d_lock);
                        noprogress = 0;
                } else if (pd == sb->s_root) {
                        printk(KERN_ERR "export: Eeek filesystem root is not connected, impossible\n");
+                       spin_lock(&pd->d_lock);
                        pd->d_flags &= ~DCACHE_DISCONNECTED;
+                       spin_unlock(&pd->d_lock);
                        noprogress = 0;
                } else {
                        /* we have hit the top of a disconnected path.  Try