mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-14 15:54:15 +08:00
NFSv4.1: Ensure that we handle _all_ SEQUENCE status bits.
Currently, the code assumes that the SEQUENCE status bits are mutually exclusive. They are not... Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: stable@vger.kernel.org [>= 2.6.34]
This commit is contained in:
parent
4f38e4aadc
commit
111d489f0f
@ -1530,16 +1530,16 @@ void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags)
|
||||
{
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user