On Mon 05-09-16 23:39:54, Ted Tso wrote: > Dmitry, thanks for the patch, and Jan, thanks for the review. > > This is what I've added to the ext4 tree, which should reflect all of > the comments which Jan made. Hum, one comment still: > + if (down_read_trylock(&elr->lr_super->s_umount)) { > + if (sb_start_write_trylock(elr->lr_super)) { > + progress = 1; > + /* > + * We hold sb->s_umount, sb can not > + * be removed from the list, it is > + * now safe to drop li_list_mtx > + */ > + mutex_unlock(&eli->li_list_mtx); > + err = ext4_run_li_request(elr); > + sb_end_write(elr->lr_super); > + mutex_lock(&eli->li_list_mtx); > + n = pos->next; > } > + up_read((&elr->lr_super->s_umount)); > + } > + /* error, remove the lazy_init job */ > + if (err) { > + ext4_remove_li_request(elr); > + continue; > + } > + if (!progress) { > + elr->lr_next_sched = jiffies + > + (prandom_u32() > + % (EXT4_DEF_LI_MAX_START_DELAY * HZ)); > + if (time_before(elr->lr_next_sched, > + next_wakeup)) > + next_wakeup = elr->lr_next_sched; > } > - > - if (time_before(elr->lr_next_sched, next_wakeup)) > - next_wakeup = elr->lr_next_sched; > } ext4_run_li_request() can also update elr->lr_next_sched. So we need to update next_wakeup even in progress == 1 case (i.e., I'd leave the update of next_wakeup as is in the old code...). Otherwise the patch looks good. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html