20 Dec, 2018

1 commit


02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

06 Feb, 2016

1 commit


03 Jul, 2015

1 commit

  • Pull NFS client updates from Trond Myklebust:
    "Highlights include:

    Stable patches:
    - Fix a crash in the NFSv4 file locking code.
    - Fix an fsync() regression, where we were failing to retry I/O in
    some circumstances.
    - Fix an infinite loop in NFSv4.0 OPEN stateid recovery
    - Fix a memory leak when an attempted pnfs fails.
    - Fix a memory leak in the backchannel code
    - Large hostnames were not supported correctly in NFSv4.1
    - Fix a pNFS/flexfiles bug that was impeding error reporting on I/O.
    - Fix a couple of credential issues in pNFS/flexfiles

    Bugfixes + cleanups:
    - Open flag sanity checks in the NFSv4 atomic open codepath
    - More NFSv4 delegation related bugfixes
    - Various NFSv4.1 backchannel bugfixes and cleanups
    - Fix the NFS swap socket code
    - Various cleanups of the NFSv4 SETCLIENTID and EXCHANGE_ID code
    - Fix a UDP transport deadlock issue

    Features:
    - More RDMA client transport improvements
    - NFSv4.2 LAYOUTSTATS functionality for pnfs flexfiles"

    * tag 'nfs-for-4.2-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (87 commits)
    nfs: Remove invalid tk_pid from debug message
    nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh
    nfs: Drop bad comment in nfs41_walk_client_list()
    nfs: Remove unneeded micro checking of CONFIG_PROC_FS
    nfs: Don't setting FILE_CREATED flags always
    nfs: Use remove_proc_subtree() instead remove_proc_entry()
    nfs: Remove unused argument in nfs_server_set_fsinfo()
    nfs: Fix a memory leak when meeting an unsupported state protect
    nfs: take extra reference to fl->fl_file when running a LOCKU operation
    NFSv4: When returning a delegation, don't reclaim an incompatible open mode.
    NFSv4.2: LAYOUTSTATS is optional to implement
    NFSv4.2: Fix up a decoding error in layoutstats
    pNFS/flexfiles: Fix the reset of struct pgio_header when resending
    pNFS/flexfiles: Turn off layoutcommit for servers that don't need it
    pnfs/flexfiles: protect ktime manipulation with mirror lock
    nfs: provide pnfs_report_layoutstat when NFS42 is disabled
    nfs: verify open flags before allowing open
    nfs: always update creds in mirror, even when we have an already connected ds
    nfs: fix potential credential leak in ff_layout_update_mirror_cred
    pnfs/flexfiles: report layoutstat regularly
    ...

    Linus Torvalds
     

05 Jun, 2015

1 commit

  • Bi-directional RPC support means code in svcrdma.ko invokes a bit of
    code in xprtrdma.ko, and vice versa. To avoid loader/linker loops,
    merge the server and client side modules together into a single
    module.

    When backchannel capabilities are added, the combined module will
    register all needed transport capabilities so that Upper Layer
    consumers automatically have everything needed to create a
    bi-directional transport connection.

    Module aliases are added for backwards compatibility with user
    space, which still may expect svcrdma.ko or xprtrdma.ko to be
    present.

    This commit reverts commit 2e8c12e1b765 ("xprtrdma: add separate
    Kconfig options for NFSoRDMA client and server support") and
    provides a single CONFIG option for enabling the new module.

    Signed-off-by: Chuck Lever
    Signed-off-by: J. Bruce Fields

    Chuck Lever
     

03 Jun, 2015

1 commit


28 Nov, 2014

1 commit

  • It's possible to get a dump of the RPC task queue by writing a value to
    /proc/sys/sunrpc/rpc_debug. If you write any value to that file, you get
    a dump of the RPC client task list into the log buffer. This is a rather
    inconvenient interface however, and makes it hard to get immediate info
    about the task queue.

    Add a new directory hierarchy under debugfs:

    sunrpc/
    rpc_clnt/
    /

    Within each clientid directory we create a new "tasks" file that will
    dump info similar to what shows up in the log buffer, but with a few
    small differences -- we avoid printing raw kernel addresses in favor of
    symbolic names and the XID is also displayed.

    Signed-off-by: Jeff Layton
    Signed-off-by: Trond Myklebust

    Jeff Layton
     

29 Mar, 2014

1 commit


15 Jul, 2011

1 commit


10 Aug, 2009

1 commit

  • Introduce a set of functions in the kernel's RPC implementation for
    converting between a socket address and either a standard
    presentation address string or an RPC universal address.

    The universal address functions will be used to encode and decode
    RPCB_FOO and NFSv4 SETCLIENTID arguments. The other functions are
    part of a previous promise to deliver shared functions that can be
    used by upper-layer protocols to display and manipulate IP
    addresses.

    The kernel's current address printf formatters were designed
    specifically for kernel to user-space APIs that require a particular
    string format for socket addresses, thus are somewhat limited for the
    purposes of sunrpc.ko. The formatter for IPv6 addresses, %pI6, does
    not support short-handing or scope IDs. Also, these printf formatters
    are unique per address family, so a separate formatter string is
    required for printing AF_INET and AF_INET6 addresses.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

18 Jun, 2009

2 commits

  • Executes the backchannel task on the RPC state machine using
    the existing open connection previously established by the client.

    Signed-off-by: Ricardo Labiaga

    nfs41: Add bc_svc.o to sunrpc Makefile.

    [nfs41: bc_send() does not need to be exported outside RPC module]
    [nfs41: xprt_free_bc_request() need not be exported outside RPC module]
    Signed-off-by: Ricardo Labiaga
    Signed-off-by: Benny Halevy
    [Update copyright]
    Signed-off-by: Ricardo Labiaga
    Signed-off-by: Benny Halevy

    Ricardo Labiaga
     
  • This patch introduces support to setup the callback xprt on the client side.
    It allocates/ destroys the preallocated memory structures used to process
    backchannel requests.

    At setup time, xprt_setup_backchannel() is invoked to allocate one or
    more rpc_rqst structures and substructures. This ensures that they
    are available when an RPC callback arrives. The rpc_rqst structures
    are maintained in a linked list attached to the rpc_xprt structure.
    We keep track of the number of allocations so that they can be correctly
    removed when the channel is destroyed.

    When an RPC callback arrives, xprt_alloc_bc_request() is invoked to
    obtain a preallocated rpc_rqst structure. An rpc_xprt structure is
    returned, and its RPC_BC_PREALLOC_IN_USE bit is set in
    rpc_xprt->bc_flags. The structure is removed from the the list
    since it is now in use, and it will be later added back when its
    user is done with it.

    After the RPC callback replies, the rpc_rqst structure is returned
    by invoking xprt_free_bc_request(). This clears the
    RPC_BC_PREALLOC_IN_USE bit and adds it back to the list, allowing it
    to be reused by a subsequent RPC callback request.

    To be consistent with the reception of RPC messages, the backchannel requests
    should be placed into the 'struct rpc_rqst' rq_rcv_buf, which is then in turn
    copied to the 'struct rpc_rqst' rq_private_buf.

    [nfs41: Preallocate rpc_rqst receive buffer for handling callbacks]
    Signed-off-by: Ricardo Labiaga
    Signed-off-by: Benny Halevy
    [Update copyright notice and explain page allocation]
    Signed-off-by: Ricardo Labiaga
    Signed-off-by: Benny Halevy

    Ricardo Labiaga
     

15 Mar, 2008

1 commit

  • Add an rpc credential that is not tied to any particular auth mechanism,
    but that can be cached by NFS, and later used to look up a cred for
    whichever auth mechanism that turns out to be valid when the RPC call is
    being made.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     

02 Feb, 2008

1 commit

  • The transport class (svc_xprt_class) represents a type of transport, e.g.
    udp, tcp, rdma. A transport class has a unique name and a set of transport
    operations kept in the svc_xprt_ops structure.

    A transport class can be dynamically registered and unregisterd. The
    svc_xprt_class represents the module that implements the transport
    type and keeps reference counts on the module to avoid unloading while
    there are active users.

    The endpoint (svc_xprt) is a generic, transport independent endpoint that can
    be used to send and receive data for an RPC service. It inherits it's
    operations from the transport class.

    A transport driver module registers and unregisters itself with svc sunrpc
    by calling svc_reg_xprt_class, and svc_unreg_xprt_class respectively.

    Signed-off-by: Tom Tucker
    Acked-by: Neil Brown
    Reviewed-by: Chuck Lever
    Reviewed-by: Greg Banks
    Signed-off-by: J. Bruce Fields

    Tom Tucker
     

10 Oct, 2007

1 commit

  • This implements the configuration and building of the core transport
    switch implementation of the rpcrdma transport. Stubs are provided for
    the rpcrdma protocol handling, and the infiniband/iwarp verbs interface.
    These are provided in following patches.

    Signed-off-by: Tom Talpey
    Signed-off-by: Trond Myklebust

    \"Talpey, Thomas\
     

01 May, 2007

2 commits

  • net/sunrpc/pmap_clnt.c has been replaced by net/sunrpc/rpcb_clnt.c.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • Introduce a replacement for the in-kernel portmapper client that supports
    all 3 versions of the rpcbind protocol. This code is not used yet.

    Original code by Groupe Bull updated for the latest kernel, with multiple
    bug fixes.

    Note that rpcb_clnt.c does not yet support registering via versions 3 and
    4 of the rpcbind protocol. That is planned for a later patch.

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

24 Sep, 2005

2 commits

  • Move the bulk of client-side socket-specific code into a separate source
    file, net/sunrpc/xprtsock.c.

    Test-plan:
    Millions of fsx operations. Performance characterization such as "sio" or
    "iozone". Destructive testing (unplugging the network temporarily, server
    reboots). Connectathon with v2, v3, and v4.

    Version: Thu, 11 Aug 2005 16:03:38 -0400

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     
  • Clean-up: Move some code that is common to both RPC client- and server-side
    socket transports into its own source file, net/sunrpc/socklib.c.

    Test-plan:
    Compile kernel with CONFIG_NFS enabled. Millions of fsx operations over
    UDP, client and server. Connectathon over UDP.

    Version: Thu, 11 Aug 2005 16:03:09 -0400

    Signed-off-by: Chuck Lever
    Signed-off-by: Trond Myklebust

    Chuck Lever
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds