18 Nov, 2017

2 commits

  • Pull NFS client updates from Anna Schumaker:
    "Stable bugfixes:
    - Revalidate "." and ".." correctly on open
    - Avoid RCU usage in tracepoints
    - Fix ugly referral attributes
    - Fix a typo in nomigration mount option
    - Revert "NFS: Move the flock open mode check into nfs_flock()"

    Features:
    - Implement a stronger send queue accounting system for NFS over RDMA
    - Switch some atomics to the new refcount_t type

    Other bugfixes and cleanups:
    - Clean up access mode bits
    - Remove special-case revalidations in nfs_opendir()
    - Improve invalidating NFS over RDMA memory for async operations that
    time out
    - Handle NFS over RDMA replies with a worqueue
    - Handle NFS over RDMA sends with a workqueue
    - Fix up replaying interrupted requests
    - Remove dead NFS over RDMA definitions
    - Update NFS over RDMA copyright information
    - Be more consistent with bool initialization and comparisons
    - Mark expected switch fall throughs
    - Various sunrpc tracepoint cleanups
    - Fix various OPEN races
    - Fix a typo in nfs_rename()
    - Use common error handling code in nfs_lock_and_join_request()
    - Check that some structures are properly cleaned up during
    net_exit()
    - Remove net pointer from dprintk()s"

    * tag 'nfs-for-4.15-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (62 commits)
    NFS: Revert "NFS: Move the flock open mode check into nfs_flock()"
    NFS: Fix typo in nomigration mount option
    nfs: Fix ugly referral attributes
    NFS: super: mark expected switch fall-throughs
    sunrpc: remove net pointer from messages
    nfs: remove net pointer from messages
    sunrpc: exit_net cleanup check added
    nfs client: exit_net cleanup check added
    nfs/write: Use common error handling code in nfs_lock_and_join_requests()
    NFSv4: Replace closed stateids with the "invalid special stateid"
    NFSv4: nfs_set_open_stateid must not trigger state recovery for closed state
    NFSv4: Check the open stateid when searching for expired state
    NFSv4: Clean up nfs4_delegreturn_done
    NFSv4: cleanup nfs4_close_done
    NFSv4: Retry NFS4ERR_OLD_STATEID errors in layoutreturn
    pNFS: Retry NFS4ERR_OLD_STATEID errors in layoutreturn-on-close
    NFSv4: Don't try to CLOSE if the stateid 'other' field has changed
    NFSv4: Retry CLOSE and DELEGRETURN on NFS4ERR_OLD_STATEID.
    NFS: Fix a typo in nfs_rename()
    NFSv4: Fix open create exclusive when the server reboots
    ...

    Linus Torvalds
     
  • atomic_t variables are currently used to implement reference
    counters with the following properties:
    - counter is initialized to 1 using atomic_set()
    - a resource is freed upon counter reaching zero
    - once counter reaches zero, its further
    increments aren't allowed
    - counter schema uses basic atomic operations
    (set, inc, inc_not_zero, dec_and_test, etc.)

    Such atomic variables should be converted to a newly provided
    refcount_t type and API that prevents accidental counter overflows
    and underflows. This is important since overflows and underflows
    can lead to use-after-free situation and be exploitable.

    The variable nfs_cache_defer_req.count is used as pure reference counter.
    Convert it to refcount_t and fix up the operations.

    Suggested-by: Kees Cook
    Reviewed-by: David Windsor
    Reviewed-by: Hans Liljestrand
    Signed-off-by: Elena Reshetova
    Signed-off-by: Anna Schumaker

    Elena Reshetova
     

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
     

15 Feb, 2013

1 commit

  • This is a cleanup patch.
    Such helpers like nfs_cache_init() and nfs_cache_destroy() are redundant,
    because they are just a wrappers around sunrpc_init_cache_detail() and
    sunrpc_destroy_cache_detail() respectively.
    So let's remove them completely and move corresponding logic to
    nfs_cache_register_net() and nfs_cache_unregister_net() respectively (since
    they are called together anyway).

    Signed-off-by: Stanislav Kinsbursky
    Signed-off-by: J. Bruce Fields

    Stanislav Kinsbursky
     

01 Feb, 2012

3 commits


27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

20 Aug, 2009

1 commit

  • The NFSv4 and NFSv4.1 protocols both allow for the redirection of a client
    from one server to another in order to support filesystem migration and
    replication. For full protocol support, we need to add the ability to
    convert a DNS host name into an IP address that we can feed to the RPC
    client.

    We'll reuse the sunrpc cache, now that it has been converted to work with
    rpc_pipefs.

    Signed-off-by: Trond Myklebust

    Trond Myklebust