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:
Родитель
2649f0809f
Коммит
18edc0b9d7
|
@ -259,8 +259,9 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
|
|||
mdev->epochs,
|
||||
write_ordering_chars[mdev->write_ordering]
|
||||
);
|
||||
seq_printf(seq, " oos:%lu\n",
|
||||
Bit2KB(drbd_bm_total_weight(mdev)));
|
||||
seq_printf(seq, " oos:%llu\n",
|
||||
Bit2KB((unsigned long long)
|
||||
drbd_bm_total_weight(mdev)));
|
||||
}
|
||||
if (mdev->state.conn == C_SYNC_SOURCE ||
|
||||
mdev->state.conn == C_SYNC_TARGET ||
|
||||
|
|
Загрузка…
Ссылка в новой задаче