On Tue, 2019-02-12 at 19:27 +0100, Greg Kroah-Hartman wrote:
> debugfs can now report an error code if something went wrong instead of
> just NULL. So if the return value is to be used as a "real" dentry, it
> needs to be checked if it is an error before dereferencing it.
>
> This is now happening because of ff9fb72bc077 ("debugfs: return error
> values, not NULL"), but why debugfs files are not being created properly
> is an older issue, probably one that has always been there and should
> probably be looked at...
>
> Cc: "J. Bruce Fields" <[email protected]>
> Cc: Jeff Layton <[email protected]>
> Cc: Trond Myklebust <[email protected]>
> Cc: Anna Schumaker <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Reported-by: David Howells <[email protected]>
> Tested-by: David Howells <[email protected]>
> Signed-off-by: Greg Kroah-Hartman <[email protected]>
>
> ---
> net/sunrpc/debugfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> I can take this through my tree if people don't object, or it can go
> through the NFS tree. It does need to get merged before 5.0-final
> though.
I'm planning another bugfixes pull for 5.0, so I can take this patch and send it
with the others this week.
Thanks!
Anna
>
> I also have a "larger" debugfs cleanup patch for this file, but that's
> not really 5.0-final material and I will send it out later.
>
> thanks,
>
> greg k-h
>
> diff --git a/net/sunrpc/debugfs.c b/net/sunrpc/debugfs.c
> index 45a033329cd4..19bb356230ed 100644
> --- a/net/sunrpc/debugfs.c
> +++ b/net/sunrpc/debugfs.c
> @@ -146,7 +146,7 @@ rpc_clnt_debugfs_register(struct rpc_clnt *clnt)
> rcu_read_lock();
> xprt = rcu_dereference(clnt->cl_xprt);
> /* no "debugfs" dentry? Don't bother with the symlink. */
> - if (!xprt->debugfs) {
> + if (IS_ERR_OR_NULL(xprt->debugfs)) {
> rcu_read_unlock();
> return;
> }