nfs4: handle -EKEYEXPIRED errors from RPC layer
authorJeff Layton <jlayton@redhat.com>
Thu, 7 Jan 2010 14:42:03 +0000 (09:42 -0500)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 10 Feb 2010 13:30:50 +0000 (08:30 -0500)
commit2c6434888cef9e5f450d6c5b7df6d8c625ed27c1
treee27b7cbd25ec699c9c8c85f9405ef039e57c659a
parentdc5ddce956660247e004a4b20a26b7d137ab1644
nfs4: handle -EKEYEXPIRED errors from RPC layer

If a KRB5 TGT ticket expires, we don't want to return an error
immediatel. If someone has a long running job and just forgets to run
"kinit" in time then this will make it fail.

Instead, we want to treat this situation as we would NFS4ERR_DELAY and
retry the upcall after delaying a bit with an exponential backoff.

This patch just makes any place that would handle NFS4ERR_DELAY also
handle -EKEYEXPIRED the same way. In the future, we may want to be more
sophisticated however and handle hard vs. soft mounts differently, or
specify some upper limit on how long we'll wait for a new TGT to be
acquired.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c
fs/nfs/nfs4state.c