wait_event(ls->ls_recover_lock_wait,
                   test_bit(LSFL_RECOVER_LOCK, &ls->ls_flags));
 
+       /* let kobject handle freeing of ls if there's an error */
+       do_unreg = 1;
+
        ls->ls_kobj.kset = dlm_kset;
        error = kobject_init_and_add(&ls->ls_kobj, &dlm_ktype, NULL,
                                     "%s", ls->ls_name);
                goto out_recoverd;
        kobject_uevent(&ls->ls_kobj, KOBJ_ADD);
 
-       /* let kobject handle freeing of ls if there's an error */
-       do_unreg = 1;
-
        /* This uevent triggers dlm_controld in userspace to add us to the
           group of nodes that are members of this lockspace (managed by the
           cluster infrastructure.)  Once it's done that, it tells us who the