--- ./source/private_module/smb1/smb_node.c	2020-04-14 10:22:18.727403428 +0000
+++ ./source/private_module/smb1/smb_node.c.hotpatch	2020-04-14 09:54:16.279403428 +0000
@@ -155,7 +155,7 @@
 
 extern struct smb_request* smb_request_alloc_fake(smb_node_t* dnode);
 extern int smb1_cmd_set_inherited_acl(struct nas_entry* nep, bool forceSet);
-
+DEFINE_MUTEX(g_lock);
 extern void smb_request_free_fake(struct smb_request* sr);
 #define    VALIDATE_DIR_NODE(_dir_, _node_) \
     NAS_CHECK_BUG((_dir_)->n_magic == SMB_NODE_MAGIC); \
@@ -607,7 +607,7 @@
         NAS_DBG(MOD_NAS_PROTO, LOG_DEBUG, "error magic:node->n_magic:%u", bnode->n_magic);
         return;
     }
-
+    mutex_enter(&g_lock);
     mutex_enter(&bnode->n_mutex);
 
     if (bnode->n_nep)
@@ -641,7 +641,7 @@
         {
             bnode->n_state = SMB_NODE_STATE_DESTROYING;
             mutex_exit(&bnode->n_mutex);
-
+            mutex_exit(&g_lock);
             if (bnode->n_hash_bucket == NULL)
             {
                 smb_print_name_convert(printname, bnode->od_name);
@@ -689,7 +689,7 @@
     }
 
 end:
-    mutex_exit(&bnode->n_mutex);
+    mutex_exit(&bnode->n_mutex);mutex_exit(&g_lock);
 }
 
 /**************************************************************************
