In ofd_inconsistency_verification_main(), spin_unlock() would
be performed twice if OBD_ALLOC_PTR(lr) failed. This patch fixes
this by adding a new label to gain lock again before unlocking.
Signed-off-by: Ulka Vaze <ulka.vaze@yahoo.in>
Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com>
Change-Id: If9838d75b9bf6936b99c9d92e8ff0c9b36d783c3
Reviewed-on: http://review.whamcloud.com/14875
Tested-by: Jenkins
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
OBD_ALLOC_PTR(lr);
if (unlikely(lr == NULL))
- GOTO(out, rc = -ENOMEM);
+ GOTO(out_unlocked, rc = -ENOMEM);
lr->lr_event = LE_PAIRS_VERIFY;
lr->lr_active = LFSCK_TYPE_LAYOUT;
GOTO(out, rc = 0);
+out_unlocked:
+ spin_lock(&ofd->ofd_inconsistency_lock);
out:
thread_set_flags(thread, SVC_STOPPED);
wake_up_all(&thread->t_ctl_waitq);