The layout LFSCK needs to know which MDT/OST devices have taken part
in the LFSCK, it maintains two lists for that. When the layout LFSCK
starts/stops, it should handle the two lists separately and properly.
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I26103ddc7796dbb1706f5c4da3737df297214e68
Reviewed-on: http://review.whamcloud.com/10507
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
break;
/* link other MDT targets locallly. */
+ ltds = &lfsck->li_mdt_descs;
spin_lock(<ds->ltd_lock);
cfs_foreach_bit(ltds->ltd_tgts_bitmap, idx) {
ltd = LTD_TGT(ltds, idx);
ltd_layout_list) {
list_del_init(<d->ltd_layout_list);
}
+ spin_unlock(<ds->ltd_lock);
+
+ ltds = &lfsck->li_mdt_descs;
+ spin_lock(<ds->ltd_lock);
list_for_each_entry_safe(ltd, next, &llmd->llmd_mdt_phase1_list,
ltd_layout_phase_list) {
list_del_init(<d->ltd_layout_phase_list);