From 9102743b4ec5bb4cef9aee76352fb03fcf5aca14 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Thu, 28 Mar 2013 14:01:33 -0400 Subject: [PATCH] --- yaml --- r: 367287 b: refs/heads/master c: 91876b13b8b3cbff5cca8476d4b4eebe5f6038cc h: refs/heads/master i: 367285: ea8aafc84c9185ec354264748fda6778be73ac7b 367283: 74e377ebbd959e47bd48d0c3b75b11c0dfaeee77 367279: bdf8c047cf27ea6aad97667d28bacd5d2de4ce82 v: v3 --- [refs] | 2 +- trunk/fs/nfs/nfs4proc.c | 8 +++----- trunk/fs/nfs/nfs4state.c | 2 ++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 46fc265d5eae..4fa1235d354d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6e3cf2415269894895074f139ef2e95ef14ddd5d +refs/heads/master: 91876b13b8b3cbff5cca8476d4b4eebe5f6038cc diff --git a/trunk/fs/nfs/nfs4proc.c b/trunk/fs/nfs/nfs4proc.c index 3e7d42fb775c..81343944e096 100644 --- a/trunk/fs/nfs/nfs4proc.c +++ b/trunk/fs/nfs/nfs4proc.c @@ -1373,7 +1373,7 @@ static int nfs4_open_reclaim(struct nfs4_state_owner *sp, struct nfs4_state *sta ctx = nfs4_state_find_open_context(state); if (IS_ERR(ctx)) - return PTR_ERR(ctx); + return -EAGAIN; ret = nfs4_do_open_reclaim(ctx, state); put_nfs_open_context(ctx); return ret; @@ -1814,7 +1814,7 @@ static int nfs4_open_expired(struct nfs4_state_owner *sp, struct nfs4_state *sta ctx = nfs4_state_find_open_context(state); if (IS_ERR(ctx)) - return PTR_ERR(ctx); + return -EAGAIN; ret = nfs4_do_open_expired(ctx, state); put_nfs_open_context(ctx); return ret; @@ -1936,10 +1936,8 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, if (ret != 0) goto out; - if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq)) { + if (read_seqcount_retry(&sp->so_reclaim_seqcount, seq)) nfs4_schedule_stateid_recovery(server, state); - nfs4_wait_clnt_recover(server->nfs_client); - } *res = state; out: return ret; diff --git a/trunk/fs/nfs/nfs4state.c b/trunk/fs/nfs/nfs4state.c index 685b1e953ed8..b924bdd69494 100644 --- a/trunk/fs/nfs/nfs4state.c +++ b/trunk/fs/nfs/nfs4state.c @@ -1476,6 +1476,8 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs */ nfs4_state_mark_recovery_failed(state, status); break; + case -EAGAIN: + ssleep(1); case -NFS4ERR_ADMIN_REVOKED: case -NFS4ERR_STALE_STATEID: case -NFS4ERR_BAD_STATEID: