In case of failure, d_hash_and_lookup() returns NULL or an error pointer. The proc_fill_cache() needs to add the handling of the error pointer returned by d_hash_and_lookup(). Signed-off-by: Wang Ming <machel@xxxxxxxx> --- fs/proc/base.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/proc/base.c b/fs/proc/base.c index bbc998fd2a2f..4c0e8329b318 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2071,6 +2071,8 @@ bool proc_fill_cache(struct file *file, struct dir_context *ctx, ino_t ino = 1; child = d_hash_and_lookup(dir, &qname); + if (IS_ERR(child)) + goto end_instantiate; if (!child) { DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq); child = d_alloc_parallel(dir, &qname, &wq); -- 2.25.1