09 Jul, 2016

1 commit

  • * topic/cec:
    [media] DocBook/media: add CEC documentation
    [media] s5p_cec: get rid of an unused var
    [media] move s5p-cec to staging
    [media] vivid: add CEC emulation
    [media] cec: s5p-cec: Add s5p-cec driver
    [media] cec: adv7511: add cec support
    [media] cec: adv7842: add cec support
    [media] cec: adv7604: add cec support
    [media] cec: add compat32 ioctl support
    [media] cec/TODO: add TODO file so we know why this is still in staging
    [media] cec: add HDMI CEC framework (api)
    [media] cec: add HDMI CEC framework (adapter)
    [media] cec: add HDMI CEC framework (core)
    [media] cec-funcs.h: static inlines to pack/unpack CEC messages
    [media] cec.h: add cec header
    [media] cec-edid: add module for EDID CEC helper functions
    [media] cec.txt: add CEC framework documentation
    [media] rc: Add HDMI CEC protocol handling

    Mauro Carvalho Chehab
     

04 Jul, 2016

2 commits


03 Jul, 2016

1 commit

  • overlay needs underlying fs to support d_type. Recently I put in a
    patch in to detect this condition and started failing mount if
    underlying fs did not support d_type.

    But this breaks existing configurations over kernel upgrade. Those who
    are running docker (partially broken configuration) with xfs not
    supporting d_type, are surprised that after kernel upgrade docker does
    not run anymore.

    https://github.com/docker/docker/issues/22937#issuecomment-229881315

    So instead of erroring out, detect broken configuration and warn
    about it. This should allow existing docker setups to continue
    working after kernel upgrade.

    Signed-off-by: Vivek Goyal
    Signed-off-by: Miklos Szeredi
    Fixes: 45aebeaf4f67 ("ovl: Ensure upper filesystem supports d_type")
    Cc: 4.6

    Vivek Goyal
     

02 Jul, 2016

3 commits

  • Pull vfs fixes from Al Viro:
    "Tmpfs readdir throughput regression fix (this cycle) + some -stable
    fodder all over the place.

    One missing bit is Miklos' tonight locks.c fix - NFS folks had already
    grabbed that one by the time I woke up ;-)"

    [ The locks.c fix came through the nfsd tree just moments ago ]

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    namespace: update event counter when umounting a deleted dentry
    9p: use file_dentry()
    ceph: fix d_obtain_alias() misuses
    lockless next_positive()
    libfs.c: new helper - next_positive()
    dcache_{readdir,dir_lseek}(): don't bother with nested ->d_lock

    Linus Torvalds
     
  • Pull lockd/locks fixes from Bruce Fields:
    "One fix for lockd soft lookups in an error path, and one fix for file
    leases on overlayfs"

    * tag 'nfsd-4.7-3' of git://linux-nfs.org/~bfields/linux:
    locks: use file_inode()
    lockd: unregister notifier blocks if the service fails to come up completely

    Linus Torvalds
     
  • Pull libnvdimm fixes from Dan Williams:
    "1/ Two regression fixes since v4.6: one for the byte order of a sysfs
    attribute (bz121161) and another for QEMU 2.6's NVDIMM _DSM (ACPI
    Device Specific Method) implementation that gets tripped up by new
    auto-probing behavior in the NFIT driver.

    2/ A fix tagged for -stable that stops the kernel from
    clobbering/ignoring changes to the configuration of a 'pfn'
    instance ("struct page" driver). For example changing the
    alignment from 2M to 1G may silently revert to 2M if that value is
    currently stored on media.

    3/ A fix from Eric for an xfstests failure in dax. It is not
    currently tagged for -stable since it requires an 8-exabyte file
    system to trigger, and there appear to be no user visible side
    effects"

    * 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    nfit: fix format interface code byte order
    dax: fix offset overflow in dax_io
    acpi, nfit: fix acpi_check_dsm() vs zero functions implemented
    libnvdimm, pfn, dax: fix initialization vs autodetect for mode + alignment

    Linus Torvalds
     

01 Jul, 2016

4 commits

  • (Another one for the f_path debacle.)

    ltp fcntl33 testcase caused an Oops in selinux_file_send_sigiotask.

    The reason is that generic_add_lease() used filp->f_path.dentry->inode
    while all the others use file_inode(). This makes a difference for files
    opened on overlayfs since the former will point to the overlay inode the
    latter to the underlying inode.

    So generic_add_lease() added the lease to the overlay inode and
    generic_delete_lease() removed it from the underlying inode. When the file
    was released the lease remained on the overlay inode's lock list, resulting
    in use after free.

    Reported-by: Eryu Guan
    Fixes: 4bacc9c9234c ("overlayfs: Make f_path always point to the overlay and f_inode to the underlay")
    Cc:
    Signed-off-by: Miklos Szeredi
    Reviewed-by: Jeff Layton
    Signed-off-by: J. Bruce Fields

    Miklos Szeredi
     
  • - m_start() in fs/namespace.c expects that ns->event is incremented each
    time a mount added or removed from ns->list.
    - umount_tree() removes items from the list but does not increment event
    counter, expecting that it's done before the function is called.
    - There are some codepaths that call umount_tree() without updating
    "event" counter. e.g. from __detach_mounts().
    - When this happens m_start may reuse a cached mount structure that no
    longer belongs to ns->list (i.e. use after free which usually leads
    to infinite loop).

    This change fixes the above problem by incrementing global event counter
    before invoking umount_tree().

    Change-Id: I622c8e84dcb9fb63542372c5dbf0178ee86bb589
    Cc: stable@vger.kernel.org
    Signed-off-by: Andrey Ulanov
    Signed-off-by: Al Viro

    Andrey Ulanov
     
  • v9fs may be used as lower layer of overlayfs and accessing f_path.dentry
    can lead to a crash. In this case it's a NULL pointer dereference in
    p9_fid_create().

    Fix by replacing direct access of file->f_path.dentry with the
    file_dentry() accessor, which will always return a native object.

    Reported-by: Alessio Igor Bogani
    Signed-off-by: Miklos Szeredi
    Tested-by: Alessio Igor Bogani
    Fixes: 4bacc9c9234c ("overlayfs: Make f_path always point to the overlay and f_inode to the underlay")
    Cc:
    Signed-off-by: Al Viro

    Miklos Szeredi
     
  • If the lockd service fails to start up then we need to be sure that the
    notifier blocks are not registered, otherwise a subsequent start of the
    service could cause the same notifier to be registered twice, leading to
    soft lockups.

    Signed-off-by: Scott Mayhew
    Cc: stable@vger.kernel.org
    Fixes: 0751ddf77b6a "lockd: Register callbacks on the inetaddr_chain..."
    Signed-off-by: J. Bruce Fields

    Scott Mayhew
     

30 Jun, 2016

2 commits

  • Negotiate with userspace filesystems whether they support parallel readdir
    and lookup. Disable parallelism by default for fear of breaking fuse
    filesystems.

    Signed-off-by: Miklos Szeredi
    Fixes: 9902af79c01a ("parallel lookups: actual switch to rwsem")
    Fixes: d9b3dbdcfd62 ("fuse: switch to ->iterate_shared()")

    Miklos Szeredi
     
  • Pull NFS client bugfixes from Anna Schumaker:
    "Stable bugfixes:
    - Fix _cancel_empty_pagelist
    - Fix a double page unlock
    - Make nfs_atomic_open() call d_drop() on all ->open_context() errors.
    - Fix another OPEN_DOWNGRADE bug

    Other bugfixes:
    - Ensure we handle delegation errors in nfs4_proc_layoutget()
    - Layout stateids start out as being invalid
    - Add sparse lock annotations for pnfs_find_alloc_layout
    - Handle bad delegation stateids in nfs4_layoutget_handle_exception
    - Fix up O_DIRECT results
    - Fix potential use after free of state in nfs4_do_reclaim.
    - Mark the layout stateid invalid when all segments are removed
    - Don't let readdirplus revalidate an inode that was marked as stale
    - Fix potential race in nfs_fhget()
    - Fix an unused variable warning"

    * tag 'nfs-for-4.7-2' of git://git.linux-nfs.org/projects/anna/linux-nfs:
    NFS: Fix another OPEN_DOWNGRADE bug
    make nfs_atomic_open() call d_drop() on all ->open_context() errors.
    NFS: Fix an unused variable warning
    NFS: Fix potential race in nfs_fhget()
    NFS: Don't let readdirplus revalidate an inode that was marked as stale
    NFSv4.1/pnfs: Mark the layout stateid invalid when all segments are removed
    NFS: Fix a double page unlock
    pnfs_nfs: fix _cancel_empty_pagelist
    nfs4: Fix potential use after free of state in nfs4_do_reclaim.
    NFS: Fix up O_DIRECT results
    NFS/pnfs: handle bad delegation stateids in nfs4_layoutget_handle_exception
    NFSv4.1/pnfs: Add sparse lock annotations for pnfs_find_alloc_layout
    NFSv4.1/pnfs: Layout stateids start out as being invalid
    NFSv4.1/pnfs: Ensure we handle delegation errors in nfs4_proc_layoutget()

    Linus Torvalds
     

29 Jun, 2016

3 commits

  • When truncating a file we should check write access on the underlying
    inode. And we should do so on the lower file as well (before copy-up) for
    consistency.

    Original patch and test case by Aihua Zhang.

    - - >o >o - - test.c - - >o >o - -
    #include
    #include
    #include

    int main(int argc, char *argv[])
    {
    int ret;

    ret = truncate(argv[0], 4096);
    if (ret != -1) {
    fprintf(stderr, "truncate(argv[0]) should have failed\n");
    return 1;
    }
    if (errno != ETXTBSY) {
    perror("truncate(argv[0])");
    return 1;
    }

    return 0;
    }
    - - >o >o - - >o >o - - >o >o - -

    Reported-by: Aihua Zhang
    Signed-off-by: Miklos Szeredi
    Cc:

    Miklos Szeredi
     
  • When using the 'default_permissions' mount option, ovl_permission() on
    non-directories was missing a dput(alias), resulting in "BUG Dentry still
    in use".

    Signed-off-by: Miklos Szeredi
    Fixes: 8d3095f4ad47 ("ovl: default permissions")
    Cc: # v4.5+

    Miklos Szeredi
     
  • Olga Kornievskaia reports that the following test fails to trigger
    an OPEN_DOWNGRADE on the wire, and only triggers the final CLOSE.

    fd0 = open(foo, RDRW) -- should be open on the wire for "both"
    fd1 = open(foo, RDONLY) -- should be open on the wire for "read"
    close(fd0) -- should trigger an open_downgrade
    read(fd1)
    close(fd1)

    The issue is that we're missing a check for whether or not the current
    state transitioned from an O_RDWR state as opposed to having transitioned
    from a combination of O_RDONLY and O_WRONLY.

    Reported-by: Olga Kornievskaia
    Fixes: cd9288ffaea4 ("NFSv4: Fix another bug in the close/open_downgrade code")
    Cc: stable@vger.kernel.org # 2.6.33+
    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     

28 Jun, 2016

3 commits

  • The CEC ioctls didn't have compat32 support, so they returned -ENOTTY
    when used in a 32 bit application on a 64 bit kernel.

    Since all the CEC ioctls are 32-bit compatible adding support for this
    API is trivial.

    Signed-off-by: Hans Verkuil
    Signed-off-by: Mauro Carvalho Chehab

    Hans Verkuil
     
  • This isn't functionally apparent for some reason, but
    when we test io at extreme offsets at the end of the loff_t
    rang, such as in fstests xfs/071, the calculation of
    "max" in dax_io() can be wrong due to pos + size overflowing.

    For example,

    # xfs_io -c "pwrite 9223372036854771712 512" /mnt/test/file

    enters dax_io with:

    start 0x7ffffffffffff000
    end 0x7ffffffffffff200

    and the rounded up "size" variable is 0x1000. This yields:

    pos + size 0x8000000000000000 (overflows loff_t)
    end 0x7ffffffffffff200

    Due to the overflow, the min() function picks the wrong
    value for the "max" variable, and when we send (max - pos)
    into i.e. copy_from_iter_pmem() it is also the wrong value.

    This somehow(tm) gets magically absorbed without incident,
    probably because iter->count is correct. But it seems best
    to fix it up properly by comparing the two values as
    unsigned.

    Signed-off-by: Eric Sandeen
    Signed-off-by: Dan Williams

    Eric Sandeen
     
  • Pull cifs fixes from Steve French:
    "Various small cifs/smb3 fixes, include some for stable, and some from
    the recent SMB3 test event"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    File names with trailing period or space need special case conversion
    Fix reconnect to not defer smb3 session reconnect long after socket reconnect
    cifs: check hash calculating succeeded
    cifs: dynamic allocation of ntlmssp blob
    cifs: use CIFS_MAX_DOMAINNAME_LEN when converting the domain name
    cifs: stuff the fl_owner into "pid" field in the lock request

    Linus Torvalds
     

27 Jun, 2016

1 commit

  • In "NFSv4: Move dentry instantiation into the NFSv4-specific atomic open code"
    unconditional d_drop() after the ->open_context() had been removed. It had
    been correct for success cases (there ->open_context() itself had been doing
    dcache manipulations), but not for error ones. Only one of those (ENOENT)
    got a compensatory d_drop() added in that commit, but in fact it should've
    been done for all errors. As it is, the case of O_CREAT non-exclusive open
    on a hashed negative dentry racing with e.g. symlink creation from another
    client ended up with ->open_context() getting an error and proceeding to
    call nfs_lookup(). On a hashed dentry, which would've instantly triggered
    BUG_ON() in d_materialise_unique() (or, these days, its equivalent in
    d_splice_alias()).

    Cc: stable@vger.kernel.org # v3.10+
    Tested-by: Oleg Drokin
    Signed-off-by: Al Viro
    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Al Viro
     

25 Jun, 2016

20 commits

  • …git/mason/linux-btrfs

    Pull btrfs fixes part 2 from Chris Mason:
    "This has one patch from Omar to bring iterate_shared back to btrfs.

    We have a tree of work we queue up for directory items and it doesn't
    lend itself well to shared access. While we're cleaning it up, Omar
    has changed things to use an exclusive lock when there are delayed
    items"

    * 'for-linus-4.7-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: fix ->iterate_shared() by upgrading i_rwsem for delayed nodes

    Linus Torvalds
     
  • Pull btrfs fixes from Chris Mason:
    "I have a two part pull this time because one of the patches Dave
    Sterba collected needed to be against v4.7-rc2 or higher (we used
    rc4). I try to make my for-linus-xx branch testable on top of the
    last major so we can hand fixes to people on the list more easily, so
    I've split this pull in two.

    This first part has some fixes and two performance improvements that
    we've been testing for some time.

    Josef's two performance fixes are most notable. The transid tracking
    patch makes a big improvement on pretty much every workload"

    * 'for-linus-4.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: Force stripesize to the value of sectorsize
    btrfs: fix disk_i_size update bug when fallocate() fails
    Btrfs: fix error handling in map_private_extent_buffer
    Btrfs: fix error return code in btrfs_init_test_fs()
    Btrfs: don't do nocow check unless we have to
    btrfs: fix deadlock in delayed_ref_async_start
    Btrfs: track transid for delayed ref flushing

    Linus Torvalds
     
  • Commit fe742fd4f90f ("Revert "btrfs: switch to ->iterate_shared()"")
    backed out the conversion to ->iterate_shared() for Btrfs because the
    delayed inode handling in btrfs_real_readdir() is racy. However, we can
    still do readdir in parallel if there are no delayed nodes.

    This is a temporary fix which upgrades the shared inode lock to an
    exclusive lock only when we have delayed items until we come up with a
    more complete solution. While we're here, rename the
    btrfs_{get,put}_delayed_items functions to make it very clear that
    they're just for readdir.

    Tested with xfstests and by doing a parallel kernel build:

    while make tinyconfig && make -j4 && git clean dqfx; do
    :
    done

    along with a bunch of parallel finds in another shell:

    while true; do
    for ((i=0; i/dev/null &
    done
    wait
    done

    Signed-off-by: Omar Sandoval
    Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    Omar Sandoval
     
  • on failure d_obtain_alias() will have done iput()

    Signed-off-by: Al Viro

    Al Viro
     
  • Merge misc fixes from Andrew Morton:
    "Two weeks worth of fixes here"

    * emailed patches from Andrew Morton : (41 commits)
    init/main.c: fix initcall_blacklisted on ia64, ppc64 and parisc64
    autofs: don't get stuck in a loop if vfs_write() returns an error
    mm/page_owner: avoid null pointer dereference
    tools/vm/slabinfo: fix spelling mistake: "Ocurrences" -> "Occurrences"
    fs/nilfs2: fix potential underflow in call to crc32_le
    oom, suspend: fix oom_reaper vs. oom_killer_disable race
    ocfs2: disable BUG assertions in reading blocks
    mm, compaction: abort free scanner if split fails
    mm: prevent KASAN false positives in kmemleak
    mm/hugetlb: clear compound_mapcount when freeing gigantic pages
    mm/swap.c: flush lru pvecs on compound page arrival
    memcg: css_alloc should return an ERR_PTR value on error
    memcg: mem_cgroup_migrate() may be called with irq disabled
    hugetlb: fix nr_pmds accounting with shared page tables
    Revert "mm: disable fault around on emulated access bit architecture"
    Revert "mm: make faultaround produce old ptes"
    mailmap: add Boris Brezillon's email
    mailmap: add Antoine Tenart's email
    mm, sl[au]b: add __GFP_ATOMIC to the GFP reclaim mask
    mm: mempool: kasan: don't poot mempool objects in quarantine
    ...

    Linus Torvalds
     
  • __vfs_write() returns a negative value in a error case.

    Link: http://lkml.kernel.org/r/20160616083108.6278.65815.stgit@pluto.themaw.net
    Signed-off-by: Andrey Vagin
    Signed-off-by: Ian Kent
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Vagin
     
  • The value `bytes' comes from the filesystem which is about to be
    mounted. We cannot trust that the value is always in the range we
    expect it to be.

    Check its value before using it to calculate the length for the crc32_le
    call. It value must be larger (or equal) sumoff + 4.

    This fixes a kernel bug when accidentially mounting an image file which
    had the nilfs2 magic value 0x3434 at the right offset 0x406 by chance.
    The bytes 0x01 0x00 were stored at 0x408 and were interpreted as a
    s_bytes value of 1. This caused an underflow when substracting sumoff +
    4 (20) in the call to crc32_le.

    BUG: unable to handle kernel paging request at ffff88021e600000
    IP: crc32_le+0x36/0x100
    ...
    Call Trace:
    nilfs_valid_sb.part.5+0x52/0x60 [nilfs2]
    nilfs_load_super_block+0x142/0x300 [nilfs2]
    init_nilfs+0x60/0x390 [nilfs2]
    nilfs_mount+0x302/0x520 [nilfs2]
    mount_fs+0x38/0x160
    vfs_kern_mount+0x67/0x110
    do_mount+0x269/0xe00
    SyS_mount+0x9f/0x100
    entry_SYSCALL_64_fastpath+0x16/0x71

    Link: http://lkml.kernel.org/r/1466778587-5184-2-git-send-email-konishi.ryusuke@lab.ntt.co.jp
    Signed-off-by: Torsten Hilbrich
    Tested-by: Torsten Hilbrich
    Signed-off-by: Ryusuke Konishi
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Torsten Hilbrich
     
  • According to some high-load testing, these two BUG assertions were
    encountered, this led system panic. Actually, there were some
    discussions about removing these two BUG() assertions, it would not
    bring any side effect.

    Then, I did the the following changes,

    1) use the existing macro CATCH_BH_JBD_RACES to wrap BUG() in the
    ocfs2_read_blocks_sync function like before.

    2) disable the macro CATCH_BH_JBD_RACES in Makefile by default.

    Link: http://lkml.kernel.org/r/1466574294-26863-1-git-send-email-ghe@suse.com
    Signed-off-by: Gang He
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc: Joseph Qi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gang He
     
  • jbd2_alloc is explicit about its allocation preferences wrt. the
    allocation size. Sub page allocations go to the slab allocator and
    larger are using either the page allocator or vmalloc. This is all good
    but the logic is unnecessarily complex.

    1) as per Ted, the vmalloc fallback is a left-over:

    : jbd2_alloc is only passed in the bh->b_size, which can't be PAGE_SIZE, so
    : the code path that calls vmalloc() should never get called. When we
    : conveted jbd2_alloc() to suppor sub-page size allocations in commit
    : d2eecb039368, there was an assumption that it could be called with a size
    : greater than PAGE_SIZE, but that's certaily not true today.

    Moreover vmalloc allocation might even lead to a deadlock because the
    callers expect GFP_NOFS context while vmalloc is GFP_KERNEL.

    2) __GFP_REPEAT for requests
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Hocko
     
  • Pull nfsd bugfixes from Bruce Fields:
    "Fix missing server-side permission checks on setting NFS ACLs"

    * tag 'nfsd-4.7-2' of git://linux-nfs.org/~bfields/linux:
    nfsd: check permissions when setting ACLs
    posix_acl: Add set_posix_acl

    Linus Torvalds
     
  • POSIX allows files with trailing spaces or a trailing period but
    SMB3 does not, so convert these using the normal Services For Mac
    mapping as we do for other reserved characters such as
    : < > | ? *
    This is similar to what Macs do for the same problem over SMB3.

    CC: Stable
    Signed-off-by: Steve French
    Acked-by: Pavel Shilovsky

    Steve French
     
  • Azure server blocks clients that open a socket and don't do anything on it.
    In our reconnect scenarios, we can reconnect the tcp session and
    detect the socket is available but we defer the negprot and SMB3 session
    setup and tree connect reconnection until the next i/o is requested, but
    this looks suspicous to some servers who expect SMB3 negprog and session
    setup soon after a socket is created.

    In the echo thread, reconnect SMB3 sessions and tree connections
    that are disconnected. A later patch will replay persistent (and
    resilient) handle opens.

    CC: Stable
    Signed-off-by: Steve French
    Acked-by: Pavel Shilovsky

    Steve French
     
  • Use set_posix_acl, which includes proper permission checks, instead of
    calling ->set_acl directly. Without this anyone may be able to grant
    themselves permissions to a file by setting the ACL.

    Lock the inode to make the new checks atomic with respect to set_acl.
    (Also, nfsd was the only caller of set_acl not locking the inode, so I
    suspect this may fix other races.)

    This also simplifies the code, and ensures our ACLs are checked by
    posix_acl_valid.

    The permission checks and the inode locking were lost with commit
    4ac7249e, which changed nfsd to use the set_acl inode operation directly
    instead of going through xattr handlers.

    Reported-by: David Sinquin
    [agreunba@redhat.com: use set_posix_acl]
    Fixes: 4ac7249e
    Cc: Christoph Hellwig
    Cc: Al Viro
    Cc: stable@vger.kernel.org
    Signed-off-by: J. Bruce Fields

    Ben Hutchings
     
  • Factor out part of posix_acl_xattr_set into a common function that takes
    a posix_acl, which nfsd can also call.

    The prototype already exists in include/linux/posix_acl.h.

    Signed-off-by: Andreas Gruenbacher
    Cc: stable@vger.kernel.org
    Cc: Christoph Hellwig
    Cc: Al Viro
    Signed-off-by: J. Bruce Fields

    Andreas Gruenbacher
     
  • Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • If we don't set the mode correctly in nfs_init_locked(), then there is
    potential for a race with a second call to nfs_fhget that will cause
    inode aliasing.

    Signed-off-by: Trond Myklebust
    Reviewed-by: Jeff Layton
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • According to RFC5661, section 12.5.3. the layout stateid is no longer
    valid once the client no longer holds any layout segments. Ensure that
    we mark it invalid.

    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • Since commit 0bcbf039f6b2, nfs_readpage_release() has been used to
    unlock the page in the read code.

    Fixes: 0bcbf039f6b2 ("nfs: handle request add failure properly")
    Cc: stable@vger.kernel.org # v4.5+
    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • pnfs_generic_commit_cancel_empty_pagelist calls nfs_commitdata_release,
    but that is wrong: nfs_commitdata_release puts the open context, something
    that isn't valid until nfs_init_commit is called, which is never the case
    when pnfs_generic_commit_cancel_empty_pagelist is called.

    This was introduced in "nfs: avoid race that crashes nfs_init_commit".

    Signed-off-by: Weston Andros Adamson
    Cc: stable@vger.kernel.org
    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Weston Andros Adamson