[GIT PULL] Please pull NFS client changes

From: Trond Myklebust
Date: Mon May 17 2010 - 18:28:31 EST


Hi Linus,

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

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

This will update the following files through the appended changesets.

Cheers,
Trond

----
fs/nfs/client.c | 55 ++-
fs/nfs/delegation.c | 2 +-
fs/nfs/dir.c | 143 ++++---
fs/nfs/file.c | 15 +-
fs/nfs/fscache.c | 3 +-
fs/nfs/getroot.c | 191 ++++------
fs/nfs/inode.c | 58 +++-
fs/nfs/internal.h | 4 +-
fs/nfs/iostat.h | 6 +-
fs/nfs/namespace.c | 20 +-
fs/nfs/nfs3acl.c | 23 +-
fs/nfs/nfs3proc.c | 128 ++++---
fs/nfs/nfs3xdr.c | 2 +-
fs/nfs/nfs4_fs.h | 8 +-
fs/nfs/nfs4namespace.c | 12 +-
fs/nfs/nfs4proc.c | 172 +++++---
fs/nfs/nfs4state.c | 36 +-
fs/nfs/nfs4xdr.c | 22 +-
fs/nfs/nfsroot.c | 14 +-
fs/nfs/pagelist.c | 14 +-
fs/nfs/proc.c | 144 ++++---
fs/nfs/read.c | 4 +-
fs/nfs/super.c | 147 ++++++--
fs/nfs/unlink.c | 4 +-
include/linux/ktime.h | 10 +-
include/linux/nfs_fs.h | 14 +
include/linux/nfs_fs_sb.h | 1 -
include/linux/nfs_xdr.h | 7 +-
include/linux/sunrpc/auth.h | 1 +
include/linux/sunrpc/auth_gss.h | 1 +
include/linux/sunrpc/gss_api.h | 8 +-
include/linux/sunrpc/gss_krb5.h | 184 +++++++++-
include/linux/sunrpc/metrics.h | 7 +-
include/linux/sunrpc/sched.h | 20 +-
include/linux/sunrpc/xdr.h | 8 +-
include/linux/sunrpc/xprt.h | 13 +-
net/sunrpc/auth.c | 19 +-
net/sunrpc/auth_gss/Makefile | 2 +-
net/sunrpc/auth_gss/auth_gss.c | 89 ++++-
net/sunrpc/auth_gss/gss_krb5_crypto.c | 697 ++++++++++++++++++++++++++++++++-
net/sunrpc/auth_gss/gss_krb5_keys.c | 336 ++++++++++++++++
net/sunrpc/auth_gss/gss_krb5_mech.c | 584 +++++++++++++++++++++++++--
net/sunrpc/auth_gss/gss_krb5_seal.c | 155 ++++++--
net/sunrpc/auth_gss/gss_krb5_seqnum.c | 83 ++++-
net/sunrpc/auth_gss/gss_krb5_unseal.c | 113 +++++-
net/sunrpc/auth_gss/gss_krb5_wrap.c | 404 ++++++++++++++++---
net/sunrpc/auth_gss/gss_mech_switch.c | 21 +-
net/sunrpc/auth_gss/gss_spkm3_mech.c | 5 +-
net/sunrpc/auth_gss/svcauth_gss.c | 17 +-
net/sunrpc/clnt.c | 19 +-
net/sunrpc/sched.c | 26 +-
net/sunrpc/stats.c | 29 +-
net/sunrpc/xdr.c | 1 +
net/sunrpc/xprt.c | 59 ++--
net/sunrpc/xprtrdma/transport.c | 31 +-
net/sunrpc/xprtsock.c | 40 +--
56 files changed, 3378 insertions(+), 853 deletions(-)

commit 126e216a8730532dfb685205309275f87e3d133e
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:55:38 2010 -0400

SUNRPC: Don't spam gssd with upcall requests when the kerberos key expired

Now that the rpc.gssd daemon can explicitly tell us that the key expired,
we should cache that information to avoid spamming gssd.

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

commit 9bb0b8136a7d5b50c5807af3bf12b758fb257814
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:50 2010 -0400

SUNRPC: Reorder the struct rpc_task fields

This improves the packing of the rpc_task, and ensures that on 64-bit
platforms the size reduces to 216 bytes.

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

commit d72b6cec8d42eb7c2a249b613abf2c2b7a6eeb47
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:50 2010 -0400

SUNRPC: Remove the 'tk_magic' debugging field

It has not triggered in almost a decade. Time to get rid of it...

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

commit d60dbb20a74c2cfa142be0a34dac3c6547ea086c
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:49 2010 -0400

SUNRPC: Move the task->tk_bytes_sent and tk_rtt to struct rpc_rqst

It seems strange to maintain stats for bytes_sent in one structure, and
bytes received in another. Try to assemble all the RPC request-related
stats in struct rpc_rqst

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

commit 9c7e7e23371e629dbb3b341610a418cdf1c19d91
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:06 2010 -0400

NFS: Don't call iput() in nfs_access_cache_shrinker

iput() can potentially attempt to allocate memory, so we should avoid
calling it in a memory shrinker. Instead, rely on the fact that iput() will
call nfs_access_zap_cache().

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

commit 1a81bb8a1fa62ccb9b2411ac10ce702ca4ed302a
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:06 2010 -0400

NFS: Clean up nfs_access_zap_cache()

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

commit 61d5eb2985b3b1d69fd53d7dc9789037c27f8d91
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:06 2010 -0400

NFS: Don't run nfs_access_cache_shrinker() when the mask is GFP_NOFS

Both iput() and put_rpccred() might allocate memory under certain
circumstances, so make sure that we don't recurse and deadlock...

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

commit 20673406534176ead9b984a84b662928110f77b1
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:06 2010 -0400

SUNRPC: Ensure rpcauth_prune_expired() respects the nr_to_scan parameter

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

commit 93a05e65c090dda9cbd79d0cf57b65c4dbd8da55
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:06 2010 -0400

SUNRPC: Ensure memory shrinker doesn't waste time in rpcauth_prune_expired()

The 'cred_unused' list, that is traversed by rpcauth_cache_shrinker is
ordered by time. If we hit a credential that is under the 60 second garbage
collection moratorium, we should exit because we know at that point that
all successive credentials are subject to the same moratorium...

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

commit d300a41ef1c39cc5e6b90fd8834ea7ab16b5c48f
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:03 2010 -0400

SUNRPC: Dont run rpcauth_cache_shrinker() when gfp_mask is GFP_NOFS

Under some circumstances, put_rpccred() can end up allocating memory, so
check the gfp_mask to prevent deadlocks.

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

commit 93870d76fee22e887aa6e7e1fc904dbeca976928
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:03 2010 -0400

NFS: Read requests can use GFP_KERNEL.

There is no danger of deadlock should the allocation trigger page
writeback.

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

commit 18eb884282bbaf99700ba5b60ded782807d52408
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:02 2010 -0400

NFS: Clean up nfs_create_request()

There is no point in looping if we're out of memory.

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

commit 1f4c86c0be9064ab4eebd9e67c84606c1cfeec4b
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:02 2010 -0400

NFS: Don't use GFP_KERNEL in rpcsec_gss downcalls

Again, we can deadlock if the memory reclaim triggers a writeback that
requires a rpcsec_gss credential lookup.

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

commit 8535b2be5181fc3019e4150567ef53210fe3b04f
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu May 13 12:51:01 2010 -0400

NFSv4: Don't use GFP_KERNEL allocations in state recovery

We do not want to have the state recovery thread kick off and wait for a
memory reclaim, since that may deadlock when the writebacks end up
waiting for the state recovery thread to complete.

The safe thing is therefore to use GFP_NOFS in all open, close,
delegation return, lock, etc. operations that may be called by the
state recovery thread.

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

commit 712a4338669d7d57f952244abb608e6ac07e39da
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Wed May 12 17:50:23 2010 -0400

SUNRPC: Fix xs_setup_bc_tcp()

It is a BUG for anybody to call this function without setting
args->bc_xprt. Trying to return an error value is just wrong, since the
user cannot fix this: it is a programming error, not a user error.

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

commit ff8399709e41bf72b4cb145612a0f9a9f7283c83
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:34:47 2010 -0400

SUNRPC: Replace jiffies-based metrics with ktime-based metrics

Currently RPC performance metrics that tabulate elapsed time use
jiffies time values. This is problematic on systems that use slow
jiffies (for instance 100HZ systems built for paravirtualized
environments). It is also a problem for computing precise latency
statistics for advanced network transports, such as InfiniBand,
that can have round-trip latencies significanly faster than a single
clock tick.

For the RPC client, adopt the high resolution time stamp mechanism
already used by the network layer and blktrace: ktime.

We use ktime format time stamps for all internal computations, and
convert to milliseconds for presentation. As a result, we need only
addition operations in the performance critical paths; multiply/divide
is required only for presentation.

We could report RTT metrics in microseconds. In fact the mountstats
format is versioned to accomodate exactly this kind of interface
improvement.

For now, however, we'll stay with millisecond precision for
presentation to maintain backwards compatibility with the handful of
currently deployed user space tools. At a later point, we'll move to
an API such as BDI_STATS where a finer timestamp precision can be
reported.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit f56916b97fe2031761ca611f0a342efd913afb33
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:34:37 2010 -0400

ktime: introduce ktime_to_ms()

To report ktime statistics to user space in milliseconds, a new helper
is required.

When considering how to do this conversion, I didn't immediately see
why the extra step of converting ktime to a timeval was needed. To
make that more clear, introduce a couple of large comments.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit bbc72cea58f671665b6362be0d4e391813ac0eee
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:34:27 2010 -0400

SUNRPC: RPC metrics and RTT estimator should use same RTT value

Compute an RPC request's RTT once, and use that value both for reporting
RPC metrics, and for adjusting the RTT context used by the RPC client's RTT
estimator algorithm.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 9bc4e3ca46e4eb9cb434de4175c6041d00bbdca3
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:34:17 2010 -0400

NFS: Calldata for nfs4_renew_done()

I'm about to change task->tk_start from a jiffies value to a ktime_t
value in order to make RPC RTT reporting more precise.

Recently (commit dc96aef9) nfs4_renew_done() started to reference
task->tk_start so that a jiffies value no longer had to be passed
from nfs4_proc_async_renew(). This allowed the calldata to point to
an nfs_client instead.

Changing task->tk_start to a ktime_t value makes it effectively
useless for renew timestamps, so we need to restore the pre-dc96aef9
logic that provided a jiffies "start" timestamp to nfs4_renew_done().

Both an nfs_client pointer and a timestamp need to be passed to
nfs4_renew_done(), so create a new nfs_renewdata structure that
contains both, resembling what is already done for delegreturn,
lock, and unlock.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit dfe52c0419b8324bacd69bd28aae77e2d6ee0379
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:34:08 2010 -0400

NFS: Squelch compiler warning in nfs_add_server_stats()

Clean up:

fs/nfs/iostat.h: In function ânfs_add_server_statsâ:
fs/nfs/iostat.h:41: warning: comparison between signed and unsigned integer expressions
fs/nfs/iostat.h:41: warning: comparison between signed and unsigned integer expressions
fs/nfs/iostat.h:41: warning: comparison between signed and unsigned integer expressions
fs/nfs/iostat.h:41: warning: comparison between signed and unsigned integer expressions

Commit fce22848 replaced the open-coded per-cpu logic in several
functions in fs/nfs/iostat.h with a single invocation of
this_cpu_ptr(). This macro assumes its second argument is signed,
not unsigned.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit a6d5ff64bae02438d914f088672cab1916153954
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:33:58 2010 -0400

NFS: Clean up fscache_uniq mount option

Clean up: fscache_uniq takes a string, so it should be included
with the other string mount option definitions, by convention.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 0f15c53d5b1829c10dd901f37b8263aa25ecf864
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:33:48 2010 -0400

NFS: Squelch compiler warning

Seen with -Wextra:

/home/cel/linux/fs/nfs/fscache.c: In function â__nfs_readpages_from_fscacheâ:
/home/cel/linux/fs/nfs/fscache.c:479: warning: comparison between signed and unsigned integer expressions

The comparison implicitly converts "int" to "unsigned", making it
safe. But there's no need for the implicit type conversions here, and
the dfprintk() already uses a "%u" formatter for "npages." Better to
reduce confusion.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 9605a069f83d999e60cd57dc8010708fe08291c0
Author: Chuck Lever <chuck.lever@xxxxxxxxxx>
Date: Fri May 7 13:33:30 2010 -0400

SUNRPC: Trivial cleanups in include/linux/sunrpc/xdr.h

Clean up: Update the documenting comment, and fix some minor white
space issues.

Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit bb8b27e504c0f0463535fea31b42bcaa393c3fb0
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:43:06 2010 -0400

NFSv4: Clean up the NFSv4 setclientid operation

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit d7cf8dd01289b3c64057e38d34c2857f6633d52c
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:42:46 2010 -0400

NFSv4: Allow attribute caching with 'noac' mounts if client holds a delegation

If the server has given us a delegation on a file, we _know_ that we can
cache the attribute information even when the user has specified 'noac'.

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit a8ce4a8f37fef0a09a1e920c2e09f67a80426c7e
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:42:12 2010 -0400

SUNRPC: Fail over more quickly on connect errors

We should not allow soft tasks to wait for longer than the major timeout
period when waiting for a reconnect to occur.

Remove the field xprt->connect_timeout since it has been obsoleted by
xprt->reestablish_timeout.

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

commit 0b9e79431377df452348e78262dd5a3dc359eeef
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:41:57 2010 -0400

SUNRPC: Move the test for XPRT_CONNECTING into xprt_connect()

This fixes a bug with setting xprt->stat.connect_start.

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 19445b99b6d66af661c586c052de23110731a502
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:41:10 2010 -0400

SUNRPC: Cleanup - make rpc_new_task() call rpc_release_calldata on failure

Also have it return an ERR_PTR(-ENOMEM) instead of a null pointer.

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit ee5ebe851ed60206f150d3f189416f9c63245b66
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:37:01 2010 -0400

SUNRPC: Clean up xprt_release()

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit fd86dfd2637db1aef9ebf96ba41aeedb87521e78
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Mon Apr 19 19:26:23 2010 -0400

NFSv4: Fix up the documentation for nfs_do_refmount

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

commit 1b4c6065b903390067c1b49bd616db5994c0d51c
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Mon Apr 19 19:14:28 2010 -0400

NFS: Replace nfsroot on-stack filehandle

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

commit b157b06ca24514ef4b766cabb8e852c950040923
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Mon Apr 19 19:05:48 2010 -0400

NFS: Cleanup file handle allocations in fs/nfs/super.c

Use the new helper functions instead of open coding.

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

commit ce587e07ba2e25b5c9d286849885b82676661f3e
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:52 2010 -0400

NFS: Prevent the mount code from looping forever on broken exports

Keep a global count of how many referrals that the current task has
traversed on a path lookup. Return ELOOP if the count exceeds
MAX_NESTED_LINKS.

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

commit 6e94d62993cb79397856f3330577917ca79cffa2
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:52 2010 -0400

NFS: Reduce stack footprint of nfs3_proc_getacl() and nfs3_proc_setacl()

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

commit ca7e9a0df263493bbdf76f47fd9e9ac48ad6f331
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:52 2010 -0400

NFS: Reduce stack footprint of nfs_statfs()

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

commit 987f8dfc9862f2c7b59594089793dedeebf0cf5e
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:52 2010 -0400

NFS: Reduce stack footprint of nfs_setattr()

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

commit 0ab64e0e147e45c07e33d344401cf898a6c181c0
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:51 2010 -0400

NFS: Reduce stack footprint of nfs4_proc_create()

Move the O_EXCL open handling into _nfs4_do_open() where it belongs. Doing
so also allows us to reuse the struct fattr from the opendata.

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

commit 23a306120fcb2879ed2b814716c1cb2a8eb74f72
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:51 2010 -0400

NFS: Reduce the stack footprint of nfs_proc_symlink()

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

commit eb872f0c8e5c9801da05d5c2a6e402af8e27160e
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:51 2010 -0400

NFS: Reduce the stack footprint of nfs_proc_create

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

commit 39967ddf19ff98b6e0d7b43fe60bcbf2c254c478
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:50 2010 -0400

NFS: Reduce the stack footprint of nfs_rmdir

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

commit d346890bea062d697e24fb4e34591428021ad011
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:50 2010 -0400

NFS: Reduce stack footprint of nfs_proc_remove()

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

commit 3b14d6542d7efbec614277d1cd7d6f5b5a2be9ca
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:50 2010 -0400

NFS: Reduce stack footprint of nfs3_proc_readlink()

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

commit 136f2627c932da5835e67e464e191d8c43c3f3fd
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:49 2010 -0400

NFS: Reduce the stack footprint of nfs_link()

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

commit aa49b4cf7dbf45438563f0ff6a2d23a68b70a7b9
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:49 2010 -0400

NFS: Reduce stack footprint of nfs_readdir()

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

commit 011fff7239eb90e33e7bebba48bf596fced06eb9
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:49 2010 -0400

NFS: Reduce stack footprint of nfs3_proc_rename() and nfs4_proc_rename()

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

commit a3cba2aad9c0a63279716d377efbf37c176ed400
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:49 2010 -0400

NFS: Reduce stack footprint of nfs_revalidate_inode()

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

commit c407d41a1612aa487f5a9cb5338ed7dc60fe1da2
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:48 2010 -0400

NFSv4: Reduce stack footprint of nfs4_proc_access() and nfs3_proc_access()

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

commit 4f727296d2428b60138793a0a1207a4085eacf99
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:48 2010 -0400

NFSv4: Reduce the stack footprint of nfs4_remote_referral_get_sb

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

commit 8bac9db9cf85f2518cb523bb1d69c481975c1f9a
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:48 2010 -0400

NFSv4: Reduce stack footprint of nfs4_get_root()

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

commit 04ffdbe2e69beb0f1745f921871fbe0f97dc4697
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:48 2010 -0400

NFS: Reduce the stack footprint of nfs_follow_remote_path()

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

commit e1fb4d05d5a3265f1f6769bee034175f91ecc2dd
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:47 2010 -0400

NFS: Reduce the stack footprint of nfs_lookup

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

commit 364d015e5208e4669a4ae9fab2ab104ff26bc159
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:46 2010 -0400

NFSv4: Reduce the stack footprint of try_location()

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

commit fbca779a8d240d82ef1439247033fd491f81547c
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:46 2010 -0400

NFS: Reduce the stack footprint of nfs_create_server

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

commit a4d7f16806e98cee752006d3a8c10067a7c2aa6b
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:46 2010 -0400

NFS: Reduce the stack footprint of nfs_follow_mountpoint()

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

commit 815409d22df870ea0b0d86f2a3bf33c35bcef55c
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:46 2010 -0400

NFSv4: Eliminate nfs4_path_walk()

All we really want is the ability to retrieve the root file handle. We no
longer need the ability to walk down the path, since that is now done in
nfs_follow_remote_path().

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

commit 2d36bfde8565b315e624302d12da5a7c9d195522
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Fri Apr 16 16:22:45 2010 -0400

NFS: Add helper functions for allocating filehandles and fattr structs

NFS Filehandles and struct fattr are really too large to be allocated on
the stack. This patch adds in a couple of helper functions to allocate them
dynamically instead.

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

commit fc54a0c65fc8cae6b0355512f0b619c1515e7d7f
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu Apr 8 14:25:20 2010 -0400

gss_krb5: Advertise rc4-hmac enctype support in the rpcsec_gss/krb5 upcall

Update the upcall info indicating which Kerberos enctypes
the kernel supports

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

commit fffdaef2eb4a7333952e55cf97f1fc0fcc35f981
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:03:06 2010 -0400

gss_krb5: Add support for rc4-hmac encryption

Add necessary changes to add kernel support for the rc4-hmac Kerberos
encryption type used by Microsoft and described in rfc4757.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 5af46547ec451918f3ba51efe59b317d33adf701
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:03:05 2010 -0400

gss_krb5: Use confounder length in wrap code

All encryption types use a confounder at the beginning of the
wrap token. In all encryption types except arcfour-hmac, the
confounder is the same as the blocksize. arcfour-hmac has a
blocksize of one, but uses an eight byte confounder.

Add an entry to the crypto framework definitions for the
confounder length and change the wrap/unwrap code to use
the confounder length rather than assuming it is always
the blocksize.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 1dbd9029f3024d058da1cf6c6658c28aac2e4e1c
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:03:04 2010 -0400

gssd_krb5: More arcfour-hmac support

For the arcfour-hmac support, the make_seq_num and get_seq_num
functions need access to the kerberos context structure.
This will be used in a later patch.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit fc263a917afad3bda7b823a6edc803a40e7f6015
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:03:03 2010 -0400

gss_krb5: Save the raw session key in the context

This is needed for deriving arcfour-hmac keys "on the fly"
using the sequence number or checksu

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 8b23707612cffdba694dcd18aa8a018918aa86dc
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:03:02 2010 -0400

gssd_krb5: arcfour-hmac support

For arcfour-hmac support, the make_checksum function needs a usage
field to correctly calculate the checksum differently for MIC and
WRAP tokens.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit bf6d359c508cf83401c942262a9749752598394d
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu Apr 8 14:23:06 2010 -0400

gss_krb5: Advertise AES enctype support in the rpcsec_gss/krb5 upcall

Update upcall info indicating which Kerberos enctypes
the kernel supports

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

commit 934a95aa1c9c6ad77838800b79c306e982437605
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:03:00 2010 -0400

gss_krb5: add remaining pieces to enable AES encryption support

Add the remaining pieces to enable support for Kerberos AES
encryption types.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit de9c17eb4a912c9028f7b470eb80815144883b26
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:59 2010 -0400

gss_krb5: add support for new token formats in rfc4121

This is a step toward support for AES encryption types which are
required to use the new token formats defined in rfc4121.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
[SteveD: Fixed a typo in gss_verify_mic_v2()]
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
[Trond: Got rid of the TEST_ROTATE/TEST_EXTRA_COUNT crap]
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit c43abaedaff92a7bcbfe04b593164bb5faba3078
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:58 2010 -0400

xdr: Add an export for the helper function write_bytes_to_xdr_buf()

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 4018bf3eec5ff6bf1234a602a4e72518757a7f55
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu Apr 8 14:21:12 2010 -0400

gss_krb5: Advertise triple-des enctype support in the rpcsec_gss/krb5 upcall

Update the upcall info indicating which Kerberos enctypes the kernel
supports.

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

commit 958142e97e04d6c266ae093739bbbbd03afcd497
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:55 2010 -0400

gss_krb5: add support for triple-des encryption

Add the final pieces to support the triple-des encryption type.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 683ac6656cb05b6e83593770ffc049eee4a4d119
Author: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Thu Apr 8 14:09:58 2010 -0400

gss_krb5: Add upcall info indicating supported kerberos enctypes

The text based upcall now indicates which Kerberos encryption types are
supported by the kernel rpcsecgss code. This is used by gssd to
determine which encryption types it should attempt to negotiate
when creating a context with a server.

The server principal's database and keytab encryption types are
what limits what it should negotiate. Therefore, its keytab
should be created with only the enctypes listed by this file.

Currently we support des-cbc-crc, des-cbc-md4 and des-cbc-md5

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

commit 47d84807762966c3611c38adecec6ea703ddda7a
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:54 2010 -0400

gss_krb5: handle new context format from gssd

For encryption types other than DES, gssd sends down context information
in a new format. This new format includes the information needed to
support the new Kerberos GSS-API tokens defined in rfc4121.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 4891f2d008e4343eedea39ba1fe74864f1d32be0
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:53 2010 -0400

gss_krb5: import functionality to derive keys into the kernel

Import the code to derive Kerberos keys from a base key into the
kernel. This will allow us to change the format of the context
information sent down from gssd to include only a single key.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit e1f6c07b1160ef28e8754d12e6c03288dd9d5ca8
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:52 2010 -0400

gss_krb5: add ability to have a keyed checksum (hmac)

Encryption types besides DES may use a keyed checksum (hmac).
Modify the make_checksum() function to allow for a key
and take care of enctype-specific processing such as truncating
the resulting hash.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 81d4a4333a1dfd6070f046265d928bb4c79aff88
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:51 2010 -0400

gss_krb5: introduce encryption type framework

Add enctype framework and change functions to use the generic
values from it rather than the values hard-coded for des.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit a8cc1cb7d7a12b0e2855832d10cfbfaffebfad6c
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:50 2010 -0400

gss_krb5: prepare for new context format

Prepare for new context format by splitting out the old "v1"
context processing function

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 1ac3719a2214c545c7e19d34e272a148ca9a24f1
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:49 2010 -0400

gss_krb5: split up functions in preparation of adding new enctypes

Add encryption type to the krb5 context structure and use it to switch
to the correct functions depending on the encryption type.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>

commit 54ec3d462f3c2a3fe48a7bd592160bee31360087
Author: J. Bruce Fields <bfields@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:48 2010 -0400

gss_krb5: Don't expect blocksize to always be 8 when calculating padding

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

commit 7561042fb7870be0b4ee57efddce68bda8968abf
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:47 2010 -0400

gss_krb5: Added and improved code comments

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

commit 725f2865d4df31ac0768b13ae763beadc4bb8ce9
Author: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Date: Wed Mar 17 13:02:46 2010 -0400

gss_krb5: Introduce encryption type framework

Make the client and server code consistent regarding the extra buffer
space made available for the auth code when wrapping data.

Add some comments/documentation about the available buffer space
in the xdr_buf head and tail when gss_wrap is called.

Add a compile-time check to make sure we are not exceeding the available
buffer space.

Add a central function to shift head data.

Signed-off-by: Kevin Coffman <kwc@xxxxxxxxxxxxxx>
Signed-off-by: Steve Dickson <steved@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/