[Drbd-dev] [patch] drbd: cleanup: change "<= 0" to "== 0"

Jens Axboe jaxboe at fusionio.com
Tue Aug 24 10:41:31 CEST 2010


On 2010-08-24 10:38, Philipp Reisner wrote:
> Am Donnerstag, 12. August 2010, um 00:38:45 schrieb Dan Carpenter:
>> dt is unsigned so it's never less than zero.  We are calculating the
>> elapsed time, and that's never less than zero (unless there is a bug or
>> we invent time travel).  The comparison here is just to guard against
>> divide by zero bugs.
>>
>> Signed-off-by: Dan Carpenter <error27 at gmail.com>
>>
>> diff --git a/drivers/block/drbd/drbd_proc.c
>> b/drivers/block/drbd/drbd_proc.c index be3374b..4c0c4aa 100644
>> --- a/drivers/block/drbd/drbd_proc.c
>> +++ b/drivers/block/drbd/drbd_proc.c
>> @@ -118,7 +118,7 @@ static void drbd_syncer_progress(struct drbd_conf
>> *mdev, struct seq_file *seq) /* mean speed since syncer started
>>  	 * we do account for PausedSync periods */
>>  	dt = (jiffies - mdev->rs_start - mdev->rs_paused) / HZ;
>> -	if (dt <= 0)
>> +	if (dt == 0)
>>  		dt = 1;
>>  	db = mdev->rs_total - rs_left;
>>  	dbdt = Bit2KB(db/dt);
> 
> Hi Dan,
> 
> Please elaborate the improvement this patch brings.
> dt can actually get negative, on jiffie wrap. I see
> little value in displaying then a negative resync speed...

Aren't all members unsigned long? If not, then you have
another bug.

-- 
Jens Axboe



More information about the drbd-dev mailing list