[GIT PULL] Please pull NFSv4.1 and pNFS client changes

From: Trond Myklebust
Date: Mon Oct 25 2010 - 22:26:39 EST


Hi Linus,

Please pull from the "nfs-for-2.6.37" branch of the repository at

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

This will update the following files through the appended changesets.

Cheers,
Trond

----
Documentation/filesystems/nfs/00-INDEX | 2 +
Documentation/filesystems/nfs/pnfs.txt | 48 ++
fs/nfs/Kconfig | 8 +-
fs/nfs/Makefile | 4 +
fs/nfs/callback_proc.c | 8 +-
fs/nfs/client.c | 10 +-
fs/nfs/file.c | 5 +
fs/nfs/inode.c | 3 +
fs/nfs/nfs4filelayout.c | 280 ++++++++++++
fs/nfs/nfs4filelayout.h | 94 ++++
fs/nfs/nfs4filelayoutdev.c | 448 ++++++++++++++++++
fs/nfs/nfs4proc.c | 218 ++++++++--
fs/nfs/nfs4state.c | 2 +
fs/nfs/nfs4xdr.c | 360 +++++++++++++++
fs/nfs/pnfs.c | 783 ++++++++++++++++++++++++++++++++
fs/nfs/pnfs.h | 189 ++++++++
fs/nfs/read.c | 3 +
fs/nfsd/nfs4callback.c | 1 -
include/linux/nfs4.h | 62 +++-
include/linux/nfs_fs.h | 5 +
include/linux/nfs_fs_sb.h | 3 +
include/linux/nfs_xdr.h | 50 ++
include/linux/sunrpc/xdr.h | 7 +
net/sunrpc/auth_gss/gss_krb5_mech.c | 2 +-
24 files changed, 2550 insertions(+), 45 deletions(-)

commit 411b5e05617593efebc06241dbc56f42150f2abe
Author: Joe Perches <joe@xxxxxxxxxxx>
Date: Mon Sep 13 12:48:01 2010 -0700

net/sunrpc: Use static const char arrays

Signed-off-by: Joe Perches <joe@xxxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 43c2e885be25311e6289c7da52e8a03c4453ee03
Author: J. Bruce Fields <bfields@xxxxxxxxxx>
Date: Sat Oct 2 15:19:01 2010 -0400

nfs4: fix channel attribute sanity-checks

The sanity checks here are incorrect; in the worst case they allow
values that crash the client.

They're also over-reliant on the preprocessor.

Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 1c787096fce217b5fdd9806dbce96e738c9345c0
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu Oct 21 16:56:48 2010 -0400

NFSv4.1: Use more sensible names for 'initialize_mountpoint'

The initialize_mountpoint/uninitialise_mountpoint functions are really about
setting or clearing the layout driver to be used on this filesystem. Change
the names to the more descriptive 'set_layoutdriver/clear_layoutdriver'.

Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 16b374ca439fb406e46e071f75428f5b033056f8
Author: Andy Adamson <andros@xxxxxxxxxx>
Date: Wed Oct 20 00:18:04 2010 -0400

NFSv4.1: pnfs: filelayout: add driver's LAYOUTGET and GETDEVICEINFO infrastructure

Implement the driver's io_ops->alloc_lseg and free_lseg functions,
which integrate into the deviceid cache and calls out to
nfs4_proc_getdeviceinfo when necessary.

Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Mike Sager <sager@xxxxxxxxxx>
Signed-off-by: Oleg Drokin <green@xxxxxxxxxxxxxx>
Signed-off-by: Ricardo Labiaga <ricardo.labiaga@xxxxxxxxxx>
Signed-off-by: Tao Guo <guotao@xxxxxxxxxxxx>
Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit b1f69b754ee312ec75f2c7ead0e6851cd9598cc2
Author: Andy Adamson <andros@xxxxxxxxxx>
Date: Wed Oct 20 00:18:03 2010 -0400

NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure

Add the ability to actually send LAYOUTGET and GETDEVICEINFO. This also adds
in the machinery to handle layout state and the deviceid cache. Note that
GETDEVICEINFO is not called directly by the generic layer. Instead it
is called by the drivers while parsing the LAYOUTGET opaque data in response
to an unknown device id embedded therein. RFC 5661 only encodes
device ids within the driver-specific opaque data.

Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Mike Sager <sager@xxxxxxxxxx>
Signed-off-by: Ricardo Labiaga <ricardo.labiaga@xxxxxxxxxx>
Signed-off-by: Tao Guo <guotao@xxxxxxxxxxxx>
Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 974cec8ca0352eb5d281535b714cf194a606e98f
Author: Andy Adamson <andros@xxxxxxxxxx>
Date: Wed Oct 20 00:18:02 2010 -0400

NFS: client needs to maintain list of inodes with active layouts

In particular, server reboot will invalidate all layouts.

Note that in order to have an active layout, we must get a successful response
from the server. To avoid adding that machinery, this patch just includes a
stub that fakes up a successful return. Since the layout is never referenced
for io, this is not a problem.

Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit e5e940170b2136ad4d5483ef293ae284b9cc8d53
Author: Benny Halevy <bhalevy@xxxxxxxxxxx>
Date: Wed Oct 20 00:18:01 2010 -0400

NFS: create and destroy inode's layout cache

At the start of the io paths, try to grab the relevant layout
information. This will initiate the inode's layout cache, but
stubs ensure the cache stays empty.

Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Tao Guo <guotao@xxxxxxxxxxxx>
Signed-off-by: Ricardo Labiaga <ricardo.labiaga@xxxxxxxxxx>
Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx>
Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 7ab672ce312133ee4a5d85b71447b2b334403681
Author: Dean Hildebrand <dhildebz@xxxxxxxxx>
Date: Wed Oct 20 00:18:00 2010 -0400

NFSv4.1: pnfs: filelayout: introduce minimal file layout driver

This driver just registers itself and supplies trivial mount/umount functions.

Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 02c35fca7cf4ea2dfdc6db279e230cacbbf4b870
Author: Fred Isaman <iisaman@xxxxxxxxxx>
Date: Wed Oct 20 00:17:59 2010 -0400

NFSv4.1: pnfs: full mount/umount infrastructure

Allow a module implementing a layout type to register, and
have its mount/umount routines called for filesystems that
the server declares support it.

Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Andy Adamson<andros@xxxxxxxxxx>
Signed-off-by: Bian Naimeng <biannm@xxxxxxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 85e174ba6b786ad336eb2df105b4f66d0932e70a
Author: Ricardo Labiaga <Ricardo.Labiaga@xxxxxxxxxx>
Date: Wed Oct 20 00:17:58 2010 -0400

NFS: set layout driver

Put in the infrastructure that uses information returned from the
server at mount to select a layout driver module.

In this patch, a stub is used that always returns "no driver found".

Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@xxxxxxxxxx>
Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 504913fbc84c00bba7224d73e4aab525c1731f7d
Author: Andy Adamson <andros@xxxxxxxxxx>
Date: Wed Oct 20 00:17:57 2010 -0400

NFS: ask for layouttypes during v4 fsinfo call

This information will be used to determine which layout driver,
if any, to use for subsequent IO on this filesystem. Each driver
is assigned an integer id, with 0 reserved to indicate no driver.

The server can in theory return multiple ids. However, our current
client implementation only notes the first entry and ignores the
rest.

Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 9449925273933d19235d7d36c1fd970841d055de
Author: Alexandros Batsakis <batsakis@xxxxxxxxxx>
Date: Wed Oct 20 00:17:56 2010 -0400

NFS: change stateid to be a union

In NFSv4.1 the stateid consists of the other and seqid fields. For layout
processing we need to numerically compare the seqid value of layout stateids.
To do so, introduce a union to nfs4_stateid to switch between opaque(16 bytes)
and opaque(12 bytes) / __be32

Signed-off-by: Alexandros Batsakis <batsakis@xxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit c772567d97fa0fca454eea68aeae915ca1bc732b
Author: Dean Hildebrand <dhildebz@xxxxxxxxx>
Date: Wed Oct 20 00:17:55 2010 -0400

NFSv4.1: pnfsd, pnfs: protocol level pnfs constants

Use only layoutreturn constant for both returns and recalls.
(return_* works better for recall_type rather the other way around)

Signed-off-by: Dean Hildebrand <dhildebz@xxxxxxxxx>
Signed-off-by: Marc Eshel <eshel@xxxxxxxxxxxxxxx>
Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 35b61e63323ccf5fdcdd74b11751b58392c9cce1
Author: Benny Halevy <bhalevy@xxxxxxxxxxx>
Date: Wed Oct 20 00:17:54 2010 -0400

SUNRPC: define xdr_decode_opaque_fixed

A helper for decoding a fixed length opaque value.
Returns a pointer to the next item in the xdr stream.

Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 3c9101a0575f6078191dae6bb91a834c6aac3557
Author: Andy Adamson <andros@xxxxxxxxxx>
Date: Wed Oct 20 00:17:53 2010 -0400

NFSD: remove duplicate NFS4_STATEID_SIZE

Already accepted by Bruce

Signed-off-by: Andy Adamson <andros@xxxxxxxxxx>
Signed-off-by: Fred Isaman <iisaman@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>


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