struct lod_tgt_descs *ltd;
struct obd_uuid obd_uuid;
bool for_ost;
+ bool lock = false;
ENTRY;
CDEBUG(D_CONFIG, "osp:%s idx:%d gen:%d\n", osp, index, gen);
}
mutex_lock(<d->ltd_mutex);
+ lock = true;
if (cfs_bitmap_check(ltd->ltd_tgt_bitmap, index)) {
CERROR("%s: device %d is registered already\n", obd->obd_name,
index);
ltd->ltd_tgtnr++;
mutex_unlock(<d->ltd_mutex);
lod_putref(lod, ltd);
+ lock = false;
if (lod->lod_recovery_completed)
ldev->ld_ops->ldo_recovery_complete(env, ldev);
out_pool:
lod_ost_pool_remove(&lod->lod_pool_info, index);
out_mutex:
- mutex_unlock(<d->ltd_mutex);
- lod_putref(lod, ltd);
+ if (lock) {
+ mutex_unlock(<d->ltd_mutex);
+ lod_putref(lod, ltd);
+ }
out_desc:
OBD_FREE_PTR(tgt_desc);
out_conn: