aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r--fs/nfs/nfs4proc.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 40da0d5bc5fc..0f9b7541e049 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1495,7 +1495,7 @@ static int _nfs4_open_expired(struct nfs_open_context *ctx, struct nfs4_state *s
1495 return ret; 1495 return ret;
1496} 1496}
1497 1497
1498static inline int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4_state *state) 1498static int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4_state *state)
1499{ 1499{
1500 struct nfs_server *server = NFS_SERVER(state->inode); 1500 struct nfs_server *server = NFS_SERVER(state->inode);
1501 struct nfs4_exception exception = { }; 1501 struct nfs4_exception exception = { };
@@ -1503,10 +1503,16 @@ static inline int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4
1503 1503
1504 do { 1504 do {
1505 err = _nfs4_open_expired(ctx, state); 1505 err = _nfs4_open_expired(ctx, state);
1506 if (err != -NFS4ERR_DELAY) 1506 switch (err) {
1507 break; 1507 default:
1508 nfs4_handle_exception(server, err, &exception); 1508 goto out;
1509 case -NFS4ERR_GRACE:
1510 case -NFS4ERR_DELAY:
1511 nfs4_handle_exception(server, err, &exception);
1512 err = 0;
1513 }
1509 } while (exception.retry); 1514 } while (exception.retry);
1515out:
1510 return err; 1516 return err;
1511} 1517}
1512 1518
@@ -1988,7 +1994,7 @@ out_drop:
1988 return 0; 1994 return 0;
1989} 1995}
1990 1996
1991void nfs4_close_context(struct nfs_open_context *ctx, int is_sync) 1997static void nfs4_close_context(struct nfs_open_context *ctx, int is_sync)
1992{ 1998{
1993 if (ctx->state == NULL) 1999 if (ctx->state == NULL)
1994 return; 2000 return;
@@ -4056,10 +4062,16 @@ static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request
4056 if (test_bit(NFS_DELEGATED_STATE, &state->flags) != 0) 4062 if (test_bit(NFS_DELEGATED_STATE, &state->flags) != 0)
4057 return 0; 4063 return 0;
4058 err = _nfs4_do_setlk(state, F_SETLK, request, 0); 4064 err = _nfs4_do_setlk(state, F_SETLK, request, 0);
4059 if (err != -NFS4ERR_DELAY) 4065 switch (err) {
4060 break; 4066 default:
4061 nfs4_handle_exception(server, err, &exception); 4067 goto out;
4068 case -NFS4ERR_GRACE:
4069 case -NFS4ERR_DELAY:
4070 nfs4_handle_exception(server, err, &exception);
4071 err = 0;
4072 }
4062 } while (exception.retry); 4073 } while (exception.retry);
4074out:
4063 return err; 4075 return err;
4064} 4076}
4065 4077