X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fexportfs%2Fexpfs.c;h=edde9a5d5414f5a06245432e5f6012d4c394810e;hb=746550cff061581f89c687ada8523670768364f2;hp=c435e0a64a3f13a909688edd0e1400bb38597d1b;hpb=86090fcac5e27b630656fe3d963a6b80e26dac44;p=linux-2.6.git diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c index c435e0a64..edde9a5d5 100644 --- a/fs/exportfs/expfs.c +++ b/fs/exportfs/expfs.c @@ -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