On Mon, Aug 26, 2024 at 8:54 AM Jeff Layton <jlayton@xxxxxxxxxx> wrote: > > Currently, you get the warning and stack trace, but nothing is printed > about the relevant error codes. Add that in. > > Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx> > --- > fs/nfsd/nfs4callback.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c > index d756f443fc44..dee9477cc5b5 100644 > --- a/fs/nfsd/nfs4callback.c > +++ b/fs/nfsd/nfs4callback.c > @@ -1333,7 +1333,8 @@ static void nfsd4_cb_done(struct rpc_task *task, void *calldata) > return; > > if (cb->cb_status) { > - WARN_ON_ONCE(task->tk_status); > + WARN_ONCE(task->tk_status, "cb_status=%d tk_status=%d", > + cb->cb_status, task->tk_status); > task->tk_status = cb->cb_status; > } Educational question: why is this warning there in the first place? I can appreciate the value of information. Does knfsd expect that a callback should never fail with an error and thus tries to always catch it? A tracepoint can log an rpc tasks status but I realize that it doesn't capture attention like a WARN_ON. I have a report with this warn_on which I'm trying to figure out why is happening but I was surprised to find nfsd cares so much about the callback status. Thank you. > > > -- > 2.46.0 > >