Hi Andrew,

During testing I've found that the mount pending flag can be left set at 
exit from autofs4_lookup after a failed mount request. This shouldn't be 
allowed to happen and causes incorrect error returns.

Signed-off-by: Ian Kent <[EMAIL PROTECTED]>

Ian

-- 

--- linux-2.6.18-rc4-mm2/fs/autofs4/root.c.clear-pending        2006-08-20 
13:20:23.000000000 +0800
+++ linux-2.6.18-rc4-mm2/fs/autofs4/root.c      2006-08-20 13:21:30.000000000 
+0800
@@ -281,9 +281,6 @@ static int try_to_fill_dentry(struct den
 
                DPRINTK("mount done status=%d", status);
 
-               if (status && dentry->d_inode)
-                       return status; /* Try to get the kernel to invalidate 
this dentry */
-
                /* Turn this into a real negative dentry? */
                if (status == -ENOENT) {
                        spin_lock(&dentry->d_lock);
@@ -540,6 +537,9 @@ static struct dentry *autofs4_lookup(str
                            return ERR_PTR(-ERESTARTNOINTR);
                        }
                }
+               spin_lock(&dentry->d_lock);
+               dentry->d_flags &= ~DCACHE_AUTOFS_PENDING;
+               spin_unlock(&dentry->d_lock);
        }
 
        /*

_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to