scrub->os_full_speed = 1;
scrub->os_in_prior = 0;
+ spin_lock(&scrub->os_lock);
scrub->os_waiting = 0;
scrub->os_paused = 0;
+ spin_unlock(&scrub->os_lock);
scrub->os_new_checked = 0;
if (sf->sf_pos_last_checkpoint != 0)
sf->sf_pos_latest_start = sf->sf_pos_last_checkpoint + 1;
ooc->ooc_pos_preload, rc);
if (scrub->os_waiting && osd_scrub_has_window(scrub, ooc)) {
+ spin_lock(&scrub->os_lock);
scrub->os_waiting = 0;
cfs_waitq_broadcast(&scrub->os_thread.t_ctl_waitq);
+ spin_unlock(&scrub->os_lock);
}
RETURN(rc < 0 ? rc : ooc->ooc_cached_items);