Re: [PATCH] EXPORTFS: Don't return NULL from fh_to_dentry()/fh_to_parent()[ver #2]

From: Hugh Dickins
Date: Fri Dec 05 2008 - 09:13:16 EST


On Fri, 5 Dec 2008, David Howells wrote:
> Returning NULL from fh_to_dentry() and fh_to_parent() is not permitted, so
> return -ESTALE instead. exportfs_decode_fh() does not check for NULL, but
> will try to dereference it as IS_ERR() does not check for it.
>
> The generic_fh_to_dentry() and generic_fh_to_parent() functions also no longer
> return NULL, but return -ESTALE instead.
>
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> Acked-by: J. Bruce Fields <bfields@xxxxxxxxxxxxxx>

I think it's still wrong in shmem_fh_to_dentry(): you've fixed
the early return, but there'd be another return NULL if !inode?

Hugh

> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -2055,7 +2055,7 @@ static struct dentry *shmem_fh_to_dentry(struct super_block *sb,
> inum = (inum << 32) | fid->raw[1];
>
> if (fh_len < 3)
> - return NULL;
> + return ERR_PTR(-ESTALE);
>
> inode = ilookup5(sb, (unsigned long)(inum + fid->raw[0]),
> shmem_match, fid->raw);
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/