diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2009-12-03 16:01:51 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2009-12-03 16:01:51 -0500 |
commit | 0b08b07507d5ae733408fd4ebda1cd89d3a840ef (patch) | |
tree | c91d8b77610f640cd930f62407b9fc5fec283773 /fs/nfs/nfs4proc.c | |
parent | 22763c5cf3690a681551162c15d34d935308c8d7 (diff) | |
parent | 1185a552e3d78807031f4021c5edb60d3e8838f1 (diff) |
Merge branch 'bugfixes' into nfs-for-next
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 741a562177fc..df8a734f1c05 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -1488,7 +1488,7 @@ static int _nfs4_open_expired(struct nfs_open_context *ctx, struct nfs4_state *s | |||
1488 | return ret; | 1488 | return ret; |
1489 | } | 1489 | } |
1490 | 1490 | ||
1491 | static inline int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4_state *state) | 1491 | static int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4_state *state) |
1492 | { | 1492 | { |
1493 | struct nfs_server *server = NFS_SERVER(state->inode); | 1493 | struct nfs_server *server = NFS_SERVER(state->inode); |
1494 | struct nfs4_exception exception = { }; | 1494 | struct nfs4_exception exception = { }; |
@@ -1496,10 +1496,16 @@ static inline int nfs4_do_open_expired(struct nfs_open_context *ctx, struct nfs4 | |||
1496 | 1496 | ||
1497 | do { | 1497 | do { |
1498 | err = _nfs4_open_expired(ctx, state); | 1498 | err = _nfs4_open_expired(ctx, state); |
1499 | if (err != -NFS4ERR_DELAY) | 1499 | switch (err) { |
1500 | break; | 1500 | default: |
1501 | nfs4_handle_exception(server, err, &exception); | 1501 | goto out; |
1502 | case -NFS4ERR_GRACE: | ||
1503 | case -NFS4ERR_DELAY: | ||
1504 | nfs4_handle_exception(server, err, &exception); | ||
1505 | err = 0; | ||
1506 | } | ||
1502 | } while (exception.retry); | 1507 | } while (exception.retry); |
1508 | out: | ||
1503 | return err; | 1509 | return err; |
1504 | } | 1510 | } |
1505 | 1511 | ||
@@ -1981,7 +1987,7 @@ out_drop: | |||
1981 | return 0; | 1987 | return 0; |
1982 | } | 1988 | } |
1983 | 1989 | ||
1984 | void nfs4_close_context(struct nfs_open_context *ctx, int is_sync) | 1990 | static void nfs4_close_context(struct nfs_open_context *ctx, int is_sync) |
1985 | { | 1991 | { |
1986 | if (ctx->state == NULL) | 1992 | if (ctx->state == NULL) |
1987 | return; | 1993 | return; |
@@ -4049,10 +4055,16 @@ static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request | |||
4049 | if (test_bit(NFS_DELEGATED_STATE, &state->flags) != 0) | 4055 | if (test_bit(NFS_DELEGATED_STATE, &state->flags) != 0) |
4050 | return 0; | 4056 | return 0; |
4051 | err = _nfs4_do_setlk(state, F_SETLK, request, 0); | 4057 | err = _nfs4_do_setlk(state, F_SETLK, request, 0); |
4052 | if (err != -NFS4ERR_DELAY) | 4058 | switch (err) { |
4053 | break; | 4059 | default: |
4054 | nfs4_handle_exception(server, err, &exception); | 4060 | goto out; |
4061 | case -NFS4ERR_GRACE: | ||
4062 | case -NFS4ERR_DELAY: | ||
4063 | nfs4_handle_exception(server, err, &exception); | ||
4064 | err = 0; | ||
4065 | } | ||
4055 | } while (exception.retry); | 4066 | } while (exception.retry); |
4067 | out: | ||
4056 | return err; | 4068 | return err; |
4057 | } | 4069 | } |
4058 | 4070 | ||