cifsFileInfo_put(cfile);
 
        SMB2_open_free(&rqst[0]);
+       if (rc == -EREMCHG) {
+               printk_once(KERN_WARNING "server share %s deleted\n",
+                           tcon->treeName);
+               tcon->need_reconnect = true;
+       }
+
        switch (command) {
        case SMB2_OP_QUERY_INFO:
                if (rc == 0) {
 
        {STATUS_PRINT_QUEUE_FULL, -EIO, "STATUS_PRINT_QUEUE_FULL"},
        {STATUS_NO_SPOOL_SPACE, -EIO, "STATUS_NO_SPOOL_SPACE"},
        {STATUS_PRINT_CANCELLED, -EIO, "STATUS_PRINT_CANCELLED"},
-       {STATUS_NETWORK_NAME_DELETED, -EIO, "STATUS_NETWORK_NAME_DELETED"},
+       {STATUS_NETWORK_NAME_DELETED, -EREMCHG, "STATUS_NETWORK_NAME_DELETED"},
        {STATUS_NETWORK_ACCESS_DENIED, -EACCES, "STATUS_NETWORK_ACCESS_DENIED"},
        {STATUS_BAD_DEVICE_TYPE, -EIO, "STATUS_BAD_DEVICE_TYPE"},
        {STATUS_BAD_NETWORK_NAME, -ENOENT, "STATUS_BAD_NETWORK_NAME"},
 
 
        /* Cached root is still invalid, continue normaly */
 
-       if (rc)
+       if (rc) {
+               if (rc == -EREMCHG) {
+                       tcon->need_reconnect = true;
+                       printk_once(KERN_WARNING "server share %s deleted\n",
+                                   tcon->treeName);
+               }
                goto oshr_exit;
+       }
 
        o_rsp = (struct smb2_create_rsp *)rsp_iov[0].iov_base;
        oparms.fid->persistent_fid = o_rsp->PersistentFileId;
                                resp_buftype, rsp_iov);
        if (rc) {
                free_rsp_buf(resp_buftype[1], rsp_iov[1].iov_base);
+               if (rc == -EREMCHG) {
+                       tcon->need_reconnect = true;
+                       printk_once(KERN_WARNING "server share %s deleted\n",
+                                   tcon->treeName);
+               }
                goto qic_exit;
        }
        *rsp = rsp_iov[1];
 
                }
                trace_smb3_open_err(xid, tcon->tid, ses->Suid,
                                    oparms->create_options, oparms->desired_access, rc);
+               if (rc == -EREMCHG) {
+                       printk_once(KERN_WARNING "server share %s deleted\n",
+                                   tcon->treeName);
+                       tcon->need_reconnect = true;
+               }
                goto creat_exit;
        } else
                trace_smb3_open_done(xid, rsp->PersistentFileId, tcon->tid,