On Fri, 27 Mar 2015 11:41:35 +0100 Christoph Hellwig <hch@xxxxxx> wrote: > FYI, I small update on tracking down the recall issue: this seems to > be very much something in the callback channel on the server. When tracing > the client all the recalls it gets they are handled fine, but we do get > error back in the layout recall ->done handler, which most of the time > but not always are local Linux errnos and not nfs error numbers, indicating > something went wrong, probably in the RPC code. Taking a quick look, the ->done routines look a little suspicious to me anyway. AFAICT, the pc_decode routines for the callbacks always return a Linux errno, not a nfsstat4, and that's what should end up in tk_status. >From nfs4_xdr_dec_cb_recall (though the other decode routines are similar): --------------[snip]------------- status = decode_cb_op_status(xdr, OP_CB_RECALL, &nfserr); if (unlikely(status)) goto out; if (unlikely(nfserr != NFS4_OK)) status = nfs_cb_stat_to_errno(nfserr); out: return status; --------------[snip]------------- ...the raw nfserr is never returned there. Where would we be getting the nfsstat4 errors that are handled in the ->done routines? -- Jeff Layton <jlayton@xxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html