提交 18edc0b9 编写于 作者: L Lars Ellenberg 提交者: Philipp Reisner

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: NPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: NLars Ellenberg <lars.ellenberg@linbit.com>
上级 2649f080
...@@ -259,8 +259,9 @@ static int drbd_seq_show(struct seq_file *seq, void *v) ...@@ -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 ||
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册