]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix infinite scan on a pool with only special allocations
authormav <mav@FreeBSD.org>
Mon, 16 Mar 2020 19:03:10 +0000 (19:03 +0000)
committermav <mav@FreeBSD.org>
Mon, 16 Mar 2020 19:03:10 +0000 (19:03 +0000)
commit4590151da985e172bf51eef10414e888cad5ce3f
treefa12ba88064d087aed15442dbe0c2a0cc246a87c
parent4a10e991b50fa9c8e0ec6af5f8cc81aa63d0e1f3
Fix infinite scan on a pool with only special allocations

Attempt to run scrub or resilver on a new pool containing only special
allocations (special vdev added on creation) caused infinite loop
because of dsl_scan_should_clear() limiting memory usage to 5% of pool
size, which it calculated accounting only normal allocation class.

Addition of special and just in case dedup classes fixes the issue.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored-By: iXsystems, Inc.
Closes #10106
Closes #8694
openzfs/zfs@fa130e010c2ff9b33aba11d2699b667e454b3ccb
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c