From: Linus Torvalds Date: Sat, 18 Nov 2017 19:22:04 +0000 (-0800) Subject: Merge tag 'nfsd-4.15' of git://linux-nfs.org/~bfields/linux X-Git-Tag: v4.15-rc1~40 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=4dd3c2e5a4225e3df85afc6033e62ce8b09f0ed2;p=linux-block.git Merge tag 'nfsd-4.15' of git://linux-nfs.org/~bfields/linux Pull nfsd updates from Bruce Fields: "Lots of good bugfixes, including: - fix a number of races in the NFSv4+ state code - fix some shutdown crashes in multiple-network-namespace cases - relax our 4.1 session limits; if you've an artificially low limit to the number of 4.1 clients that can mount simultaneously, try upgrading" * tag 'nfsd-4.15' of git://linux-nfs.org/~bfields/linux: (22 commits) SUNRPC: Improve ordering of transport processing nfsd: deal with revoked delegations appropriately svcrdma: Enqueue after setting XPT_CLOSE in completion handlers nfsd: use nfs->ns.inum as net ID rpc: remove some BUG()s svcrdma: Preserve CB send buffer across retransmits nfds: avoid gettimeofday for nfssvc_boot time fs, nfsd: convert nfs4_file.fi_ref from atomic_t to refcount_t fs, nfsd: convert nfs4_cntl_odstate.co_odcount from atomic_t to refcount_t fs, nfsd: convert nfs4_stid.sc_count from atomic_t to refcount_t lockd: double unregister of inetaddr notifiers nfsd4: catch some false session retries nfsd4: fix cached replies to solo SEQUENCE compounds sunrcp: make function _svc_create_xprt static SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status nfsd: use ARRAY_SIZE nfsd: give out fewer session slots as limit approaches nfsd: increase DRC cache limit nfsd: remove unnecessary nofilehandle checks nfs_common: convert int to bool ... --- 4dd3c2e5a4225e3df85afc6033e62ce8b09f0ed2 diff --cc include/trace/events/sunrpc.h index ecbdbfe86eb6,8a13e3903839..8c153f68509e --- a/include/trace/events/sunrpc.h +++ b/include/trace/events/sunrpc.h @@@ -486,21 -455,23 +486,23 @@@ TRACE_EVENT(svc_recv TP_ARGS(rqst, status), TP_STRUCT__entry( - __field(struct sockaddr *, addr) - __field(__be32, xid) + __field(u32, xid) __field(int, status) __field(unsigned long, flags) + __dynamic_array(unsigned char, addr, rqst->rq_addrlen) ), TP_fast_assign( - __entry->addr = (struct sockaddr *)&rqst->rq_addr; - __entry->xid = status > 0 ? rqst->rq_xid : 0; + __entry->xid = status > 0 ? be32_to_cpu(rqst->rq_xid) : 0; __entry->status = status; __entry->flags = rqst->rq_flags; + memcpy(__get_dynamic_array(addr), + &rqst->rq_addr, rqst->rq_addrlen); ), - TP_printk("addr=%pIScp xid=0x%08x status=%d flags=%s", __entry->addr, - TP_printk("addr=%pIScp xid=0x%x status=%d flags=%s", ++ TP_printk("addr=%pIScp xid=0x%08x status=%d flags=%s", + (struct sockaddr *)__get_dynamic_array(addr), - be32_to_cpu(__entry->xid), __entry->status, + __entry->xid, __entry->status, show_rqstp_flags(__entry->flags)) ); @@@ -544,22 -515,23 +546,23 @@@ DECLARE_EVENT_CLASS(svc_rqst_status TP_ARGS(rqst, status), TP_STRUCT__entry( - __field(struct sockaddr *, addr) - __field(__be32, xid) + __field(u32, xid) - __field(int, dropme) __field(int, status) __field(unsigned long, flags) + __dynamic_array(unsigned char, addr, rqst->rq_addrlen) ), TP_fast_assign( - __entry->addr = (struct sockaddr *)&rqst->rq_addr; - __entry->xid = rqst->rq_xid; + __entry->xid = be32_to_cpu(rqst->rq_xid); __entry->status = status; __entry->flags = rqst->rq_flags; + memcpy(__get_dynamic_array(addr), + &rqst->rq_addr, rqst->rq_addrlen); ), - TP_printk("addr=%pIScp rq_xid=0x%x status=%d flags=%s", + TP_printk("addr=%pIScp rq_xid=0x%08x status=%d flags=%s", - __entry->addr, __entry->xid, + (struct sockaddr *)__get_dynamic_array(addr), - be32_to_cpu(__entry->xid), ++ __entry->xid, __entry->status, show_rqstp_flags(__entry->flags)) );