| From 111d489f0fb431f4ae85d96851fbf8d3248c09d8 Mon Sep 17 00:00:00 2001 |
| From: Trond Myklebust <Trond.Myklebust@netapp.com> |
| Date: Thu, 1 Dec 2011 16:37:42 -0500 |
| Subject: NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits. |
| |
| From: Trond Myklebust <Trond.Myklebust@netapp.com> |
| |
| commit 111d489f0fb431f4ae85d96851fbf8d3248c09d8 upstream. |
| |
| Currently, the code assumes that the SEQUENCE status bits are mutually |
| exclusive. They are not... |
| |
| Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| fs/nfs/nfs4state.c | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/fs/nfs/nfs4state.c |
| +++ b/fs/nfs/nfs4state.c |
| @@ -1519,16 +1519,16 @@ void nfs41_handle_sequence_flag_errors(s |
| { |
| if (!flags) |
| return; |
| - else if (flags & SEQ4_STATUS_RESTART_RECLAIM_NEEDED) |
| + if (flags & SEQ4_STATUS_RESTART_RECLAIM_NEEDED) |
| nfs41_handle_server_reboot(clp); |
| - else if (flags & (SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED | |
| + if (flags & (SEQ4_STATUS_EXPIRED_ALL_STATE_REVOKED | |
| SEQ4_STATUS_EXPIRED_SOME_STATE_REVOKED | |
| SEQ4_STATUS_ADMIN_STATE_REVOKED | |
| SEQ4_STATUS_LEASE_MOVED)) |
| nfs41_handle_state_revoked(clp); |
| - else if (flags & SEQ4_STATUS_RECALLABLE_STATE_REVOKED) |
| + if (flags & SEQ4_STATUS_RECALLABLE_STATE_REVOKED) |
| nfs41_handle_recallable_state_revoked(clp); |
| - else if (flags & (SEQ4_STATUS_CB_PATH_DOWN | |
| + if (flags & (SEQ4_STATUS_CB_PATH_DOWN | |
| SEQ4_STATUS_BACKCHANNEL_FAULT | |
| SEQ4_STATUS_CB_PATH_DOWN_SESSION)) |
| nfs41_handle_cb_path_down(clp); |