]>
Commit | Line | Data |
---|---|---|
a010b409 SI |
1 | From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
2 | From: Olaf Faaland <faaland1@llnl.gov> | |
3 | Date: Fri, 6 Apr 2018 13:29:11 -0700 | |
4 | Subject: [PATCH] Fix divide-by-zero in mmp_delay_update() | |
5 | ||
6 | vdev_count_leaves() in the denominator may return 0, caught by Coverity. | |
7 | Introduced by | |
8 | ||
9 | * 533ea04 Update mmp_delay on sync or skipped, failed write | |
10 | ||
11 | Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> | |
12 | Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov> | |
13 | Reviewed-by: George Melikov <mail@gmelikov.ru> | |
14 | Signed-off-by: Olaf Faaland <faaland1@llnl.gov> | |
15 | Closes #7391 | |
16 | ||
17 | Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com> | |
18 | --- | |
19 | module/zfs/mmp.c | 2 +- | |
20 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
21 | ||
22 | diff --git a/module/zfs/mmp.c b/module/zfs/mmp.c | |
23 | index 1ae5f31f..3b74a6b6 100644 | |
24 | --- a/module/zfs/mmp.c | |
25 | +++ b/module/zfs/mmp.c | |
26 | @@ -327,7 +327,7 @@ mmp_delay_update(spa_t *spa, boolean_t write_completed) | |
27 | */ | |
28 | if (delay < mts->mmp_delay) { | |
29 | hrtime_t min_delay = MSEC2NSEC(zfs_multihost_interval) / | |
30 | - vdev_count_leaves(spa); | |
31 | + MAX(1, vdev_count_leaves(spa)); | |
32 | mts->mmp_delay = MAX(((delay + mts->mmp_delay * 127) / 128), | |
33 | min_delay); | |
34 | } |