2016-05-26 15:30:05

by Anna Schumaker

[permalink] [raw]
Subject: [GIT PULL] Please pull NFS client changes for Linux 4.7

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(-)


Attachments:
linux-next: build failure after merge of the nfs tree.eml (5.00 kB)
linux-next: manual merge of the nfs tree with Linus' tree.eml (4.34 kB)
linux-next: manual merge of the rdma tree with the nfs tree.eml (4.74 kB)
Download all attachments

2016-05-27 17:14:36

by Boris Ostrovsky

[permalink] [raw]
Subject: Re: [GIT PULL] Please pull NFS client changes for Linux 4.7

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





2016-05-27 23:50:25

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] Please pull NFS client changes for Linux 4.7

On Fri, May 27, 2016 at 10:14 AM, Boris Ostrovsky
<[email protected]> wrote:
>
> 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

Does the attached patch fix it for you?

I don't have easy access to the old compiler, but I _think_ the
trivial patch of just adding braces around the data initializer should
make old gcc's happy

Linus


Attachments:
patch.diff (428.00 B)

2016-05-28 00:17:41

by Boris Ostrovsky

[permalink] [raw]
Subject: Re: [GIT PULL] Please pull NFS client changes for Linux 4.7


----- [email protected] wrote:

> On Fri, May 27, 2016 at 10:14 AM, Boris Ostrovsky
> <[email protected]> wrote:
> >
> > 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
>
> Does the attached patch fix it for you?
>
> I don't have easy access to the old compiler, but I _think_ the
> trivial patch of just adding braces around the data initializer
> should
> make old gcc's happy


It does fix it.

This is not the first time we've hit this and people have always been changing code to initialize fields in execution path (and I didn't fix it here myself because I wasn't sure where to do that). I guess we could have been just adding braces all along.


Thanks.
-boris

2016-05-28 00:38:11

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] Please pull NFS client changes for Linux 4.7

On Fri, May 27, 2016 at 5:17 PM, Boris Ostrovsky
<[email protected]> wrote:
>
> It does fix it.

Ok, I've committed that in my tree, will do my usual build test and push out.

> This is not the first time we've hit this and people have always been
> changing code to initialize fields in execution path (and I didn't fix
> it here myself because I wasn't sure where to do that). I guess we
> could have been just adding braces all along.

Well, adding the braces also requires that you get the *order* of the
member initialization right, since the braces will be unnamed.

In this case, the unnamed union was the first member, so the trivial
patch worked, but that's not always the case.

In fact, in this case, I think an alternate and possibly better fix
would have been to just remove the ".data = { 0 }" initializer
entirely, since in its absence it would have been initialized to zero
anyway.

But since you already tested my uglier "just add a brace like the
error message suggests" that's the one I'll be committing.

It's a fairly annoying failure of older compilers, exactly because
people with newer compilers won't even realize that they are causing
problems.

Linus