drbd: fix potential wrap of 32bit oos:%lu display in /proc/drbd
When converting bits (4k resolution, still) to kB, we shift left. If it was a large number of bits on a 32bit box (>= 4 TiB storage), we may wrap the 32bit unsigned long base type, resulting in incorrect display. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
This commit is contained in:
parent
2649f0809f
commit
18edc0b9d7
@ -259,8 +259,9 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
|
|||||||
mdev->epochs,
|
mdev->epochs,
|
||||||
write_ordering_chars[mdev->write_ordering]
|
write_ordering_chars[mdev->write_ordering]
|
||||||
);
|
);
|
||||||
seq_printf(seq, " oos:%lu\n",
|
seq_printf(seq, " oos:%llu\n",
|
||||||
Bit2KB(drbd_bm_total_weight(mdev)));
|
Bit2KB((unsigned long long)
|
||||||
|
drbd_bm_total_weight(mdev)));
|
||||||
}
|
}
|
||||||
if (mdev->state.conn == C_SYNC_SOURCE ||
|
if (mdev->state.conn == C_SYNC_SOURCE ||
|
||||||
mdev->state.conn == C_SYNC_TARGET ||
|
mdev->state.conn == C_SYNC_TARGET ||
|
||||||
|
Loading…
x
Reference in New Issue
Block a user