[GIT PULL] Please pull NFS client fixes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Bakeathon testing in Ann Arbor last week uncovered a number of bugs
in the existing NFS code (mainly in NFSv4.1).

Please pull from the "bugfixes" branch of the repository at

   git pull git://git.linux-nfs.org/projects/trondmy/nfs-2.6.git bugfixes

This will update the following files through the appended changesets.

  Cheers,
    Trond

----
 fs/lockd/clntproc.c            |    8 ++++++-
 fs/nfs/inode.c                 |    6 +++-
 fs/nfs/internal.h              |   11 +++++++++
 fs/nfs/nfs4filelayout.c        |   21 ++++++++++++------
 fs/nfs/nfs4proc.c              |   45 ++++++++++++++++++++++++----------------
 fs/nfs/nfs4xdr.c               |   26 ++++++++++++----------
 fs/nfs/objlayout/objio_osd.c   |    4 ++-
 fs/nfs/objlayout/objlayout.c   |    2 +-
 fs/nfs/pagelist.c              |    3 +-
 fs/nfs/pnfs.c                  |   44 +++++++++++++++++++++++++++-----------
 fs/nfs/pnfs.h                  |    1 +
 fs/nfs/pnfs_dev.c              |   17 ++++++++++----
 include/linux/nfs_page.h       |    3 ++
 include/linux/nfs_xdr.h        |    1 -
 include/linux/sunrpc/sched.h   |    3 +-
 net/sunrpc/auth_gss/auth_gss.c |    4 +-
 net/sunrpc/clnt.c              |    5 +++-
 net/sunrpc/sched.c             |    1 +
 18 files changed, 139 insertions(+), 66 deletions(-)

commit 1650add23578b5ca35c1f1e863987180a8c03779
Author: Bryan Schumaker <bjschuma@xxxxxxxxxx>
Date:   Thu Jun 2 15:07:35 2011 -0400

    NFS: Fix decode_secinfo_maxsz
    
    I initially did the calculation in bytes, and not words
    
    Signed-off-by: Bryan Schumaker <bjschuma@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 19982ba8562e33083cb5bbb59a74855d8a9624ea
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date:   Fri Jun 10 13:30:23 2011 -0400

    NFSv4.1: Fix an off-by-one error in pnfs_generic_pg_test
    
    And document what is going on there...
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 8f7d5efbef8718a774ac5e347b4ec069f17fd9b4
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date:   Fri Jun 10 13:30:22 2011 -0400

    NFSv4.1: Fix some issues with pnfs_generic_pg_test
    
    1. If the intention is to coalesce requests 'prev' and 'req' then we
       have to ensure at least that we have a layout starting at
       req_offset(prev).
    
    2. If we're only requesting a minimal layout of length desc->pg_count,
       we need to test the length actually returned by the server before
       we allow the coalescing to occur.
    
    3. We need to deal correctly with (pgio->lseg == NULL)
    
    4. Fixup the test guarding the pnfs_update_layout.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 19345cb299e8234006c5125151ab723e851a1d24
Author: Benny Halevy <benny@xxxxxxxxxx>
Date:   Sun Jun 19 18:33:46 2011 -0400

    NFSv4.1: file layout must consider pg_bsize for coalescing
    
    Otherwise we end up overflowing the rpc buffer size on the receive end.
    
    Signed-off-by: Benny Halevy <benny@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit df18d127f4fed7a0284bcfa8d2843800cdb63b72
Author: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
Date:   Fri Jun 17 16:25:51 2011 -0400

    pnfs-obj: No longer needed to take an extra ref at add_device
    
    Andy's last device_cache patches, already take an extra
    reference on the newly inserted device_id. So we can remove it
    from obj-io.
    
    Without this patch the device_ids are leaked.
    
    Andy's patches are not in Linus tree yet. So I'm not sure if they are
    scheduled for this Kernel or the next. This patch should be added as
    part of these.
    
    CC: Andy Adamson <andros@xxxxxxxxxx>
    Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 5afa9133cfe67f1bfead6049a9640c9262a7101c
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date:   Fri Jun 17 10:14:59 2011 -0400

    SUNRPC: Ensure the RPC client only quits on fatal signals
    
    Fix a couple of instances where we were exiting the RPC client on
    arbitrary signals. We should only do so on fatal signals.
    
    Cc: stable@xxxxxxxxxx
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit ee7b75fc4f3ae49e1f25bf56219bb5de3c29afaf
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date:   Thu Jun 16 13:15:41 2011 -0400

    NFSv4: Fix a readdir regression
    
    Commit 7ebb9315 (NFS: use secinfo when crossing mountpoints) introduces
    a regression when decoding an NFSv4 readdir entry that sets the
    rdattr_error field.
    By treating the resulting value as if it is a decoding error, the current
    code may cause us to skip valid readdir entries.
    
    Reported-by: Andy Adamson <andros@xxxxxxxxxx>
    Cc: stable@xxxxxxxxxx [2.6.39]
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 9e2dfdb3081edfae66a49013517e80dd8a0469fa
Author: Fred Isaman <iisaman@xxxxxxxxxx>
Date:   Wed Jun 15 14:32:02 2011 -0400

    nfs4.1: mark layout as bad on error path in _pnfs_return_layout
    
    Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit ea0ded748bdea78f9e2fefb571f7d6ce9edb4f89
Author: Fred Isaman <iisaman@xxxxxxxxxx>
Date:   Wed Jun 15 12:31:02 2011 -0400

    nfs4.1: prevent race that allowed use of freed layout in _pnfs_return_layout
    
    mark_matching_lsegs_invalid could put the last ref to the layout, so
    the get_layout_hdr needs to be called first.
    
    Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 1ed3a8539af7b36aa5c977f304e80f7fc8d27bfc
Author: Benny Halevy <benny@xxxxxxxxxx>
Date:   Wed Jun 15 11:39:57 2011 -0400

    NFSv4.1: need to put_layout_hdr on _pnfs_return_layout error path
    
    We always get a reference on the layout header and we rely on
    nfs4_layoutreturn_release to put it.  If we hit an allocation error
    before starting the rpc proc we bail out early without dereferncing
    the layout header properly.
    
    Signed-off-by: Benny Halevy <benny@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit c7fd06228b994190d8369a2a0acf5224e4e13d1a
Author: David Howells <dhowells@xxxxxxxxxx>
Date:   Wed Jun 15 00:55:44 2011 +0100

    NFS: (d)printks should use %zd for ssize_t arguments
    
    (d)printks should use %zd for ssize_t arguments not %ld, otherwise they might
    get a warning.  I see the following with MN10300.
    
    fs/nfs/objlayout/objlayout.c: In function 'objlayout_read_done':
    fs/nfs/objlayout/objlayout.c:294: warning: format '%ld' expects type 'long int', but argument 3 has type 'ssize_t'
    
    Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
    cc: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
    cc: linux-nfs@xxxxxxxxxxxxxxx
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit d771e3a43e23a37398b7e05a9d1b1036d698263c
Author: Benny Halevy <benny@xxxxxxxxxx>
Date:   Tue Jun 14 16:30:16 2011 -0400

    NFSv4.1: fix break condition in pnfs_find_lseg
    
    The break condition to skip out of the loop got broken when cmp_layout
    was change.  Essentially, we want to stop looking once we know no layout
    on the remainder of the list can match the first byte of the looked-up
    range.
    
    Reported-by: Peng Tao <peng_tao@xxxxxxx>
    Signed-off-by: Benny Halevy <benny@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit a2e1d4f2e5ed83850de92a491ef225824cb457bd
Author: Fred Isaman <iisaman@xxxxxxxxxx>
Date:   Mon Jun 13 18:54:53 2011 -0400

    nfs4.1: fix several problems with _pnfs_return_layout
    
    _pnfs_return_layout had the following problems:
    
    - it did not call pnfs_free_lseg_list on all paths
    - it unintentionally did a forgetful return when there was no outstanding io
    - it raced with concurrent LAYOUTGETS
    
    Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit cec765cf5891c7fc3d905832b481bfb6fd55825d
Author: Andy Adamson <andros@xxxxxxxxxx>
Date:   Mon Jun 13 18:36:17 2011 -0400

    NFSv4.1: allow zero fh array in filelayout decode layout
    
    Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
    cc:stable@xxxxxxxxxx [2.6.39]
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 533eb4611c9eea53072eb6a61d5a6393b6a77ed7
Author: Andy Adamson <andros@xxxxxxxxxx>
Date:   Mon Jun 13 18:25:56 2011 -0400

    NFSv4.1: allow nfs_fhget to succeed with mounted on fileid
    
    Commit 28331a46d88459788c8fca72dbb0415cd7f514c9 "Ensure we request the
    ordinary fileid when doing readdirplus"
    changed the meaning of NFS_ATTR_FATTR_FILEID which used to be set when
    FATTR4_WORD1_MOUNTED_ON_FILED was requested.
    
    Allow nfs_fhget to succeed with only a mounted on fileid when crossing
    a mountpoint or a referral.
    
    Ask for the fileid of the absent file system if mounted_on_fileid is not
    supported.
    
    Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
    cc:stable@xxxxxxxxxx [2.6.39]
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 1d92a08da23848a38eece4df7eaa4e8ec0e6c699
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date:   Tue Jun 14 12:07:38 2011 -0400

    NFSv4.1: Fix a refcounting issue in the pNFS device id cache
    
    When we add something to the global device id cache, we need to bump the
    reference count, so that the cache itself holds a reference.
    
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit c9c30dd5f73dccaa326a54dfcf490316946aea87
Author: Benny Halevy <benny@xxxxxxxxxx>
Date:   Sat Jun 11 17:08:39 2011 -0400

    NFSv4.1: deprecate headerpadsz in CREATE_SESSION
    
    We don't support header padding yet so better off ditching it
    
    Reported-by: Sid Moore <learnmost@xxxxxxxxx>
    Signed-off-by: Benny Halevy <benny@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 0f66b5984df2fe1617c05900a39a7ef493ca9de9
Author: Peng Tao <bergwolf@xxxxxxxxx>
Date:   Sat Oct 16 22:07:46 2010 -0700

    NFS41: do not update isize if inode needs layoutcommit
    
    nfs_update_inode will update isize if there is no queued pages. For pNFS,
    layoutcommit is supposed to change file size on server, the same effect as queued
    pages. nfs_update_inode may be called when dirty pages are written back (nfsi->npages==0)
    but layoutcommit is not sent, and it will change client file size according to server
    file size. Then client ends up losing what it just writes back in pNFS path.
    So we should skip updating client file size if file needs layoutcommit.
    
    Signed-off-by: Peng Tao <peng_tao@xxxxxxx>
    Cc: stable@xxxxxxxxxx   [2.6.39]
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 0b760113a3a155269a3fba93a409c640031dd68f
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date:   Tue May 31 15:15:34 2011 -0400

    NLM: Don't hang forever on NLM unlock requests
    
    If the NLM daemon is killed on the NFS server, we can currently end up
    hanging forever on an 'unlock' request, instead of aborting. Basically,
    if the rpcbind request fails, or the server keeps returning garbage, we
    really want to quit instead of retrying.
    
    Tested-by: Vasily Averin <vvs@xxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
    Cc: stable@xxxxxxxxxx

commit 9e3bd4e24e94d60d2e0762e919aab6c9a7fc0c5b
Author: Weston Andros Adamson <dros@xxxxxxxxxx>
Date:   Tue May 31 21:46:50 2011 -0400

    NFS: fix umount of pnfs filesystems
    
    Unmounting a pnfs filesystem hangs using filelayout and possibly others.
    This fixes the use of the rcu protected node by making use of a new 'tmpnode'
    for the temporary purge list. Also, the spinlock shouldn't be held when calling
    synchronize_rcu().
    
    Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxx>
    Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
    Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>


-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
Trond.Myklebust@xxxxxxxxxx
www.netapp.com

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux