diff options
| -rw-r--r-- | fs/nfs/nfs4proc.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 1933e6719bb0..f82bde005a82 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
| @@ -270,7 +270,7 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc | |||
| 270 | case 0: | 270 | case 0: |
| 271 | return 0; | 271 | return 0; |
| 272 | case -NFS4ERR_OPENMODE: | 272 | case -NFS4ERR_OPENMODE: |
| 273 | if (nfs_have_delegation(inode, FMODE_READ)) { | 273 | if (inode && nfs_have_delegation(inode, FMODE_READ)) { |
| 274 | nfs_inode_return_delegation(inode); | 274 | nfs_inode_return_delegation(inode); |
| 275 | exception->retry = 1; | 275 | exception->retry = 1; |
| 276 | return 0; | 276 | return 0; |
| @@ -282,10 +282,9 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc | |||
| 282 | case -NFS4ERR_DELEG_REVOKED: | 282 | case -NFS4ERR_DELEG_REVOKED: |
| 283 | case -NFS4ERR_ADMIN_REVOKED: | 283 | case -NFS4ERR_ADMIN_REVOKED: |
| 284 | case -NFS4ERR_BAD_STATEID: | 284 | case -NFS4ERR_BAD_STATEID: |
| 285 | if (state != NULL) | ||
| 286 | nfs_remove_bad_delegation(state->inode); | ||
| 287 | if (state == NULL) | 285 | if (state == NULL) |
| 288 | break; | 286 | break; |
| 287 | nfs_remove_bad_delegation(state->inode); | ||
| 289 | nfs4_schedule_stateid_recovery(server, state); | 288 | nfs4_schedule_stateid_recovery(server, state); |
| 290 | goto wait_on_recovery; | 289 | goto wait_on_recovery; |
| 291 | case -NFS4ERR_EXPIRED: | 290 | case -NFS4ERR_EXPIRED: |
| @@ -3825,8 +3824,9 @@ nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server, | |||
| 3825 | case -NFS4ERR_DELEG_REVOKED: | 3824 | case -NFS4ERR_DELEG_REVOKED: |
| 3826 | case -NFS4ERR_ADMIN_REVOKED: | 3825 | case -NFS4ERR_ADMIN_REVOKED: |
| 3827 | case -NFS4ERR_BAD_STATEID: | 3826 | case -NFS4ERR_BAD_STATEID: |
| 3828 | if (state != NULL) | 3827 | if (state == NULL) |
| 3829 | nfs_remove_bad_delegation(state->inode); | 3828 | break; |
| 3829 | nfs_remove_bad_delegation(state->inode); | ||
| 3830 | case -NFS4ERR_OPENMODE: | 3830 | case -NFS4ERR_OPENMODE: |
| 3831 | if (state == NULL) | 3831 | if (state == NULL) |
| 3832 | break; | 3832 | break; |
