diff mbox

[GIT,PULL] Please pull NFS client changes for Linux 4.7

Message ID ed695df4-9072-41ae-93b0-8479873333f6@Netapp.com (mailing list archive)
State New, archived
Headers show

Pull-request

git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-4.7-1

Commit Message

Schumaker, Anna May 26, 2016, 3:29 p.m. UTC
Hi Linus,

The following changes since commit 44549e8f5eea4e0a41b487b63e616cb089922b99:

  Linux 4.6-rc7 (2016-05-08 14:38:32 -0700)

are available in the git repository at:

  git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-4.7-1

for you to fetch changes up to c7d73af2d249f0323f5cdb171a59497ce80011fb:

  pnfs: pnfs_update_layout needs to consider if strict iomode checking is on (2016-05-26 08:40:56 -0400)


There are a few merge conflicts that were found in linux-next.  Stephen's suggested resolutions looked okay to us, so I've attached those patches for reference.

Thanks,
Anna

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

Anna Schumaker (2):
      NFS: Add nfs_commit_file()
      NFS: Add COPY nfs operation

Benjamin Coddington (1):
      SUNRPC: init xdr_stream for zero iov_len, page_len

Chuck Lever (21):
      NFS: Fix an LOCK/OPEN race when unlinking an open file
      sunrpc: Update RPCBIND_MAXNETIDLEN
      sunrpc: Advertise maximum backchannel payload size
      xprtrdma: Bound the inline threshold values
      xprtrdma: Limit number of RDMA segments in RPC-over-RDMA headers
      xprtrdma: Prevent inline overflow
      xprtrdma: Avoid using Write list for small NFS READ requests
      xprtrdma: Update comments in rpcrdma_marshal_req()
      xprtrdma: Allow Read list and Reply chunk simultaneously
      xprtrdma: Remove rpcrdma_create_chunks()
      xprtrdma: Use core ib_drain_qp() API
      xprtrdma: Rename rpcrdma_frwr::sg and sg_nents
      xprtrdma: Save I/O direction in struct rpcrdma_frwr
      xprtrdma: Reset MRs in frwr_op_unmap_sync()
      xprtrdma: Refactor the FRWR recovery worker
      xprtrdma: Move fr_xprt and fr_worker to struct rpcrdma_mw
      xprtrdma: Refactor __fmr_dma_unmap()
      xprtrdma: Add ro_unmap_safe memreg method
      xprtrdma: Remove ro_unmap() from all registration modes
      xprtrdma: Faster server reboot recovery
      xprtrdma: Remove qplock

Dan Carpenter (1):
      NFS: checking for NULL instead of IS_ERR() in nfs_commit_file()

Dave Wysochanski (1):
      NFS: Save struct inode * inside nfs_commit_info to clarify usage of i_lock

J. Bruce Fields (1):
      nfs: don't share mounts between network namespaces

Jeff Layton (16):
      sunrpc: plumb gfp_t parm into crcreate operation
      sunrpc: add a get_rpccred_rcu inline
      nfs: don't call nfs4_ff_layout_prepare_ds from ff_layout_get_ds_cred
      nfs: have ff_layout_get_ds_cred take a reference to the cred
      nfs: get a reference to the credential in ff_layout_alloc_lseg
      nfs: have flexfiles mirror keep creds for both ro and rw layouts
      pnfs: don't merge new ff lsegs with ones that have LAYOUTRETURN bit set
      pnfs: record sequence in pnfs_layout_segment when it's created
      pnfs: keep track of the return sequence number in pnfs_layout_hdr
      pnfs: only tear down lsegs that precede seqid in LAYOUTRETURN args
      flexfiles: remove pointless setting of NFS_LAYOUT_RETURN_REQUESTED
      flexfiles: add kerneldoc header to nfs4_ff_layout_prepare_ds
      pnfs: fix bad error handling in send_layoutget
      pnfs: lift retry logic from send_layoutget to pnfs_update_layout
      pnfs: rework LAYOUTGET retry handling
      pnfs: make pnfs_layout_process more robust

Olga Kornievskaia (1):
      Fixing oops in callback path

Shirley Ma (1):
      xprtrdma: Add rdma6 option to support NFS/RDMA IPv6

Tigran Mkrtchyan (1):
      nfs4: client: do not send empty SETATTR after OPEN_CREATE

Tom Haynes (5):
      pNFS/flexfiles: When checking for available DSes, conditionally check for MDS io
      pNFS/flexfiles: When initing reads or writes, we might have to retry connecting to DSes
      nfs/flexfiles: Helper function to detect FF_FLAGS_NO_READ_IO
      nfs/flexfiles: Use the layout segment for reading unless it a IOMODE_RW and reading is disabled
      pnfs: pnfs_update_layout needs to consider if strict iomode checking is on

Trond Myklebust (6):
      pNFS: Fix a leaked layoutstats flag
      SUNRPC: Ensure get_rpccred() and put_rpccred() can take NULL arguments
      NFSv4: Label stateids with the type
      NFSv4: Use the right stateid for delegations in setattr, read and write
      NFS: Reclaim writes via writepage are opportunistic
      pNFS/flexfile: Fix erroneous fall back to read/write through the MDS

Weston Andros Adamson (4):
      pnfs: set NFS_IOHDR_REDO in pnfs_read_resend_pnfs
      nfs: add debug to directio "good_bytes" counting
      sunrpc: add rpc_lookup_generic_cred
      nfs: avoid race that crashes nfs_init_commit

 fs/nfs/callback_proc.c                    |   9 +-
 fs/nfs/callback_xdr.c                     |  17 +-
 fs/nfs/delegation.c                       |   9 +-
 fs/nfs/delegation.h                       |   2 +-
 fs/nfs/direct.c                           |  17 +-
 fs/nfs/filelayout/filelayout.c            |   6 +-
 fs/nfs/flexfilelayout/flexfilelayout.c    | 200 ++++++++----
 fs/nfs/flexfilelayout/flexfilelayout.h    |  17 +-
 fs/nfs/flexfilelayout/flexfilelayoutdev.c | 119 +++----
 fs/nfs/internal.h                         |   1 +
 fs/nfs/nfs42.h                            |   1 +
 fs/nfs/nfs42proc.c                        | 107 ++++++-
 fs/nfs/nfs42xdr.c                         | 146 +++++++++
 fs/nfs/nfs4_fs.h                          |  12 +-
 fs/nfs/nfs4file.c                         |  23 ++
 fs/nfs/nfs4proc.c                         | 185 ++++++-----
 fs/nfs/nfs4state.c                        |  18 +-
 fs/nfs/nfs4trace.h                        |  10 +-
 fs/nfs/nfs4xdr.c                          |  43 ++-
 fs/nfs/pagelist.c                         |   6 +-
 fs/nfs/pnfs.c                             | 349 +++++++++++---------
 fs/nfs/pnfs.h                             |  17 +-
 fs/nfs/pnfs_nfs.c                         |  60 +++-
 fs/nfs/super.c                            |   9 +
 fs/nfs/write.c                            |  64 +++-
 include/linux/errno.h                     |   1 +
 include/linux/nfs4.h                      |  28 +-
 include/linux/nfs_fs_sb.h                 |   1 +
 include/linux/nfs_xdr.h                   |  30 +-
 include/linux/sunrpc/auth.h               |  26 +-
 include/linux/sunrpc/clnt.h               |   1 +
 include/linux/sunrpc/msg_prot.h           |   4 +-
 include/linux/sunrpc/xprt.h               |   1 +
 include/linux/sunrpc/xprtrdma.h           |   4 +-
 net/sunrpc/auth.c                         |   9 +-
 net/sunrpc/auth_generic.c                 |  13 +-
 net/sunrpc/auth_gss/auth_gss.c            |   6 +-
 net/sunrpc/auth_unix.c                    |   6 +-
 net/sunrpc/clnt.c                         |  17 +
 net/sunrpc/xdr.c                          |   2 +
 net/sunrpc/xprtrdma/backchannel.c         |  16 +
 net/sunrpc/xprtrdma/fmr_ops.c             | 134 +++++---
 net/sunrpc/xprtrdma/frwr_ops.c            | 214 +++++++------
 net/sunrpc/xprtrdma/physical_ops.c        |  39 ++-
 net/sunrpc/xprtrdma/rpc_rdma.c            | 517 ++++++++++++++++++------------
 net/sunrpc/xprtrdma/transport.c           |  16 +-
 net/sunrpc/xprtrdma/verbs.c               |  78 +----
 net/sunrpc/xprtrdma/xprt_rdma.h           |  47 ++-
 net/sunrpc/xprtsock.c                     |   6 +
 49 files changed, 1764 insertions(+), 899 deletions(-)
Hi Trond,

After merging the nfs tree, today's linux-next build (x86_64 allmodconfig)
failed like this:

In file included from include/linux/fs.h:19:0,
                 from fs/nfs/nfs42proc.c:4:
fs/nfs/nfs42proc.c: In function 'nfs42_proc_copy':
fs/nfs/nfs42proc.c:212:30: error: 'struct inode' has no member named 'i_mutex'
   mutex_lock(&file_inode(dst)->i_mutex);
                              ^
include/linux/mutex.h:146:44: note: in definition of macro 'mutex_lock'
 #define mutex_lock(lock) mutex_lock_nested(lock, 0)
                                            ^
fs/nfs/nfs42proc.c:215:32: error: 'struct inode' has no member named 'i_mutex'
   mutex_unlock(&file_inode(dst)->i_mutex);
                                ^   

Caused by commit

  2e72448b07dc ("NFS: Add COPY nfs operation")

interacting with commit

  9902af79c01a ("parallel lookups: actual switch to rwsem")

from Linus' tree.

I applied the following merge fix patch - you will need to send this to
Linus when you ask him to merge your tree.

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 19 May 2016 10:50:26 +1000
Subject: [PATCH] nfs: fix for i_mutex to i_rwsem change

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 fs/nfs/nfs42proc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Boris Ostrovsky May 27, 2016, 5:14 p.m. UTC | #1
On 05/26/2016 11:29 AM, Anna Schumaker wrote:
> Hi Linus,
>
> The following changes since commit 44549e8f5eea4e0a41b487b63e616cb089922b99:
>
>   Linux 4.6-rc7 (2016-05-08 14:38:32 -0700)
>
> are available in the git repository at:
>
>   git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-4.7-1
>
> for you to fetch changes up to c7d73af2d249f0323f5cdb171a59497ce80011fb:
>
>   pnfs: pnfs_update_layout needs to consider if strict iomode checking is on (2016-05-26 08:40:56 -0400)
>
>
> There are a few merge conflicts that were found in linux-next.  Stephen's suggested resolutions looked okay to us, so I've attached those patches for reference.
>
> Thanks,
> Anna
>
> ----------------------------------------------------------------
...

>
> Trond Myklebust (6):
>       pNFS: Fix a leaked layoutstats flag
>       SUNRPC: Ensure get_rpccred() and put_rpccred() can take NULL arguments
>       NFSv4: Label stateids with the type

This breaks on older compilers:

  CC      fs/nfs/nfs4state.o
/home/build/linux-linus/fs/nfs/nfs4state.c:69: error: unknown field
‘data’ specified in initializer
/home/build/linux-linus/fs/nfs/nfs4state.c:69: warning: missing braces
around initializer
/home/build/linux-linus/fs/nfs/nfs4state.c:69: warning: (near
initialization for ‘zero_stateid.<anonymous>.data’)
make[2]: *** [fs/nfs/nfs4state.o] Error 1
make[1]: *** [fs/nfs/nfs4state.o] Error 2
make[1]: Leaving directory `/home/build/xtt-x86_64/bootstrap/linux-build'
make: *** [sub-make] Error 2
make: Leaving directory `/home/build/linux-linus'
FC-64 <build@build-mk2:~/xtt-x86_64/bootstrap> gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap
--enable-shared --enable-threads=posix --enable-checking=release
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic
--with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.4 20100503 (Red Hat 4.4.4-2) (GCC)
FC-64 <build@build-mk2:~/xtt-x86_64/bootstrap>


I believe pre-4.6 versions do not allow initialization of anonymous
structs/unions.

-boris




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

Patch

diff --git a/fs/nfs/nfs42proc.c b/fs/nfs/nfs42proc.c
index 20c44d1209dc..aa03ed09ba06 100644
--- a/fs/nfs/nfs42proc.c
+++ b/fs/nfs/nfs42proc.c
@@ -209,10 +209,10 @@  ssize_t nfs42_proc_copy(struct file *src, loff_t pos_src,
 	dst_exception.state = dst_lock->open_context->state;
 
 	do {
-		mutex_lock(&file_inode(dst)->i_mutex);
+		inode_lock(file_inode(dst));
 		err = _nfs42_proc_copy(src, pos_src, src_lock,
 				       dst, pos_dst, dst_lock, count);
-		mutex_unlock(&file_inode(dst)->i_mutex);
+		inode_unlock(file_inode(dst));
 
 		if (err == -ENOTSUPP) {
 			err = -EOPNOTSUPP;