]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Fix divide-by-zero in mmp_delay_update()
authorOlaf Faaland <faaland1@llnl.gov>
Fri, 6 Apr 2018 20:29:11 +0000 (13:29 -0700)
committerTony Hutter <hutter2@llnl.gov>
Fri, 6 Jul 2018 09:46:51 +0000 (02:46 -0700)
vdev_count_leaves() in the denominator may return 0, caught by Coverity.
Introduced by

533ea04 Update mmp_delay on sync or skipped, failed write

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Olaf Faaland <faaland1@llnl.gov>
Closes #7391

module/zfs/mmp.c

index 1ae5f31fd62bac0fc9cd5a7e1b3a81b4dc189bab..3b74a6b6186b5ac9eeb5868c40af37912e943923 100644 (file)
@@ -327,7 +327,7 @@ mmp_delay_update(spa_t *spa, boolean_t write_completed)
         */
        if (delay < mts->mmp_delay) {
                hrtime_t min_delay = MSEC2NSEC(zfs_multihost_interval) /
-                   vdev_count_leaves(spa);
+                   MAX(1, vdev_count_leaves(spa));
                mts->mmp_delay = MAX(((delay + mts->mmp_delay * 127) / 128),
                    min_delay);
        }