lkml.org 
[lkml]   [2018]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 091/136] NFS: Avoid RCU usage in tracepoints
    3.16.54-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Anna Schumaker <Anna.Schumaker@Netapp.com>

    commit 3944369db701f075092357b511fd9f5755771585 upstream.

    There isn't an obvious way to acquire and release the RCU lock during a
    tracepoint, so we can't use the rpc_peeraddr2str() function here.
    Instead, rely on the client's cl_hostname, which should have similar
    enough information without needing an rcu_dereference().

    Reported-by: Dave Jones <davej@codemonkey.org.uk>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    [bwh: Backported to 3.16: Drop changes in
    nfs4_inode{,_stateid}_callback_event()]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    fs/nfs/nfs4trace.h | 24 ++++++------------------
    1 file changed, 6 insertions(+), 18 deletions(-)

    --- a/fs/nfs/nfs4trace.h
    +++ b/fs/nfs/nfs4trace.h
    @@ -201,17 +201,13 @@ DECLARE_EVENT_CLASS(nfs4_clientid_event,
    TP_ARGS(clp, error),

    TP_STRUCT__entry(
    - __string(dstaddr,
    - rpc_peeraddr2str(clp->cl_rpcclient,
    - RPC_DISPLAY_ADDR))
    + __string(dstaddr, clp->cl_hostname)
    __field(int, error)
    ),

    TP_fast_assign(
    __entry->error = error;
    - __assign_str(dstaddr,
    - rpc_peeraddr2str(clp->cl_rpcclient,
    - RPC_DISPLAY_ADDR));
    + __assign_str(dstaddr, clp->cl_hostname);
    ),

    TP_printk(
    \
     
     \ /
      Last update: 2018-02-11 05:47    [W:4.953 / U:0.220 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site