NFSD: Remove BUG_ON in nfsd4_process_cb_update()
authorChuck Lever <chuck.lever@oracle.com>
Fri, 26 Jan 2024 17:46:26 +0000 (12:46 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Fri, 1 Mar 2024 14:12:16 +0000 (09:12 -0500)
Don't kill the kworker thread, and don't panic while cl_lock is
held. There's no need for scorching the earth here.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Benjamin Coddington <bcodding@redhat.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4callback.c

index d73c66fa131df7144b7f815d683be1a29f4c6033..fd6a27e20f65badd41832bd4d26eb71e049b95eb 100644 (file)
@@ -1370,8 +1370,9 @@ static void nfsd4_process_cb_update(struct nfsd4_callback *cb)
         * Only serialized callback code is allowed to clear these
         * flags; main nfsd code can only set them:
         */
-       BUG_ON(!(clp->cl_flags & NFSD4_CLIENT_CB_FLAG_MASK));
+       WARN_ON(!(clp->cl_flags & NFSD4_CLIENT_CB_FLAG_MASK));
        clear_bit(NFSD4_CLIENT_CB_UPDATE, &clp->cl_flags);
+
        memcpy(&conn, &cb->cb_clp->cl_cb_conn, sizeof(struct nfs4_cb_conn));
        c = __nfsd4_find_backchannel(clp);
        if (c) {