If OPEN_DOWNGRADE returns a state error, then we want to initiate
state recovery in addition to marking the stateid as closed.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
                                        task->tk_msg.rpc_cred);
                        /* Fallthrough */
                case -NFS4ERR_BAD_STATEID:
-                       break;
+                       if (calldata->arg.fmode == 0)
+                               break;
+                       /* Fallthrough */
                default:
                        task->tk_status = nfs4_async_handle_exception(task,
                                        server, task->tk_status, &exception);