]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
nfsd: Drop the client reference in client_states_open()
authorHaoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Sat, 6 Dec 2025 07:38:42 +0000 (15:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:11:59 +0000 (13:11 +0100)
commit 1f941b2c23fd34c6f3b76d36f9d0a2528fa92b8f upstream.

In error path, call drop_client() to drop the reference
obtained by get_nfsdfs_clp().

Fixes: 78599c42ae3c ("nfsd4: add file to display list of client's opens")
Cc: stable@vger.kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfsd/nfs4state.c

index 1ac405bb5de2bee814d1e5728a0de7507c965d4b..5417d3d8c0e2d544a157f863baf8f0b1a860b1b6 100644 (file)
@@ -2802,8 +2802,10 @@ static int client_states_open(struct inode *inode, struct file *file)
                return -ENXIO;
 
        ret = seq_open(file, &states_seq_ops);
-       if (ret)
+       if (ret) {
+               drop_client(clp);
                return ret;
+       }
        s = file->private_data;
        s->private = clp;
        return 0;