diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 9010e1c78..3020bd570 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -4541,12 +4541,6 @@ int scst_acg_add_lun(struct scst_acg *acg, struct kobject *parent, list_add_tail(&acg_dev->acg_dev_list_entry, &acg->acg_dev_list); list_add_tail(&acg_dev->dev_acg_dev_list_entry, &dev->dev_acg_dev_list); - if (!(flags & SCST_ADD_LUN_CM)) { - res = scst_cm_on_add_lun(acg_dev, lun, &flags); - if (res != 0) - goto out_free; - } - list_for_each_entry(sess, &acg->acg_sess_list, acg_sess_list_entry) { res = scst_alloc_add_tgt_dev(sess, acg_dev, &tgt_dev); if (res == -EPERM) @@ -4558,6 +4552,12 @@ int scst_acg_add_lun(struct scst_acg *acg, struct kobject *parent, &tmp_tgt_dev_list); } + if (!(flags & SCST_ADD_LUN_CM)) { + res = scst_cm_on_add_lun(acg_dev, lun, &flags); + if (res != 0) + goto out_free; + } + res = scst_acg_dev_sysfs_create(acg_dev, parent); if (res != 0) goto out_on_del;