if (conn->ops->get_cmd_val(work) != SMB2_CANCEL_HE)
                requests_queue = &conn->requests;
 
+       atomic_inc(&conn->req_running);
        if (requests_queue) {
-               atomic_inc(&conn->req_running);
                spin_lock(&conn->request_lock);
                list_add_tail(&work->request_entry, requests_queue);
                spin_unlock(&conn->request_lock);
 {
        struct ksmbd_conn *conn = work->conn;
 
+       atomic_dec(&conn->req_running);
+
        if (list_empty(&work->request_entry) &&
            list_empty(&work->async_request_entry))
                return;
 
-       atomic_dec(&conn->req_running);
        spin_lock(&conn->request_lock);
        list_del_init(&work->request_entry);
        spin_unlock(&conn->request_lock);