Ian Kent <[EMAIL PROTECTED]> writes:

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

Reviewed-by: Jeff Moyer <[EMAIL PROTECTED]>

Cheers,

Jeff

>
> ---
>
>  fs/autofs4/waitq.c |   17 ++++++++++++++---
>  1 files changed, 14 insertions(+), 3 deletions(-)
>
>
> diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
> index bcb6c52..35216d1 100644
> --- a/fs/autofs4/waitq.c
> +++ b/fs/autofs4/waitq.c
> @@ -328,9 +328,20 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct 
> dentry *dentry,
>       if (sbi->catatonic)
>               return -ENOENT;
>  
> -     if (!dentry->d_inode &&
> -         (sbi->type & (AUTOFS_TYPE_DIRECT | AUTOFS_TYPE_OFFSET)))
> -             return -ENOENT;
> +     if (!dentry->d_inode) {
> +             /*
> +              * A wait for a negative dentry is invalid for certain
> +              * cases. A direct or offset mount "always" has its mount
> +              * point directory created and so the request dentry must
> +              * be positive or the map key doesn't exist. The situation
> +              * is very similar for indirect mounts except only dentrys
> +              * in the root of the autofs file system may be negative.
> +              */
> +             if (sbi->type & (AUTOFS_TYPE_DIRECT|AUTOFS_TYPE_OFFSET))
> +                     return -ENOENT;
> +             else if (!IS_ROOT(dentry->d_parent))
> +                     return -ENOENT;
> +     }
>  
>       name = kmalloc(NAME_MAX + 1, GFP_KERNEL);
>       if (!name)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

_______________________________________________
autofs mailing list
autofs@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to