[Drbd-dev] request_timer continuous loop if there is disk-timeout

Lars Ellenberg lars.ellenberg at linbit.com
Mon Mar 14 11:23:16 CET 2016


On Mon, Mar 14, 2016 at 02:37:21PM +0900, 박경민 wrote:
> I have known more request_timer_fn(). Thanks
> 
> I think helper function *time_min_in_future() *function will return the
> nearest future time, right?
> And, next_trigger_time is initialize now value, so always is same.
> void request_timer_fn(unsigned long data)
> {
>     if (dt) {
> ...
>         if (device->disk_state[NOW] > D_FAILED) {
>             next_trigger_time = *time_min_in_future*(now,
>                     next_trigger_time, oldest_submit_jif + dt);         //
> 1st assign
>             restart_timer = true;
>         }
> ...
>     }
>     for_each_connection(connection, device->resource) {
> ...
>         next_trigger_time = *time_min_in_future*(now,
>                 next_trigger_time, pre_send_jif + ent);                 //
> 2nd assign
> ...
>     }
> ...
>     if (restart_timer) {
>         next_trigger_time = *time_min_in_future*(now, next_trigger_time,
> now + et);       // 3rd assign
> ...
>     }
> }
> Maybe, 3 assignments are always same, because now == next_trigger_time,
> which is the nearest.  So, if restart_timer 's value is true, then
> loop continuously even dt or ent exists.

No.

> I don't know how to put the different thing.

Me neither.



Also, you have seen this?

> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of drbd-dev digest..."




More information about the drbd-dev mailing list