diff options
Diffstat (limited to 'usr/src/uts/common/fs/zfs/dsl_scan.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/dsl_scan.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/zfs/dsl_scan.c b/usr/src/uts/common/fs/zfs/dsl_scan.c index 15fff87c9e..e1859cc34c 100644 --- a/usr/src/uts/common/fs/zfs/dsl_scan.c +++ b/usr/src/uts/common/fs/zfs/dsl_scan.c @@ -1627,6 +1627,7 @@ dsl_scan_scrub_cb(dsl_pool_t *dp, uint64_t phys_birth = BP_PHYSICAL_BIRTH(bp); boolean_t needs_io; int zio_flags = ZIO_FLAG_SCAN_THREAD | ZIO_FLAG_RAW | ZIO_FLAG_CANFAIL; + int zio_priority; int scan_delay = 0; if (phys_birth <= scn->scn_phys.scn_min_txg || @@ -1638,11 +1639,13 @@ dsl_scan_scrub_cb(dsl_pool_t *dp, ASSERT(DSL_SCAN_IS_SCRUB_RESILVER(scn)); if (scn->scn_phys.scn_func == POOL_SCAN_SCRUB) { zio_flags |= ZIO_FLAG_SCRUB; + zio_priority = ZIO_PRIORITY_SCRUB; needs_io = B_TRUE; scan_delay = zfs_scrub_delay; } else { ASSERT3U(scn->scn_phys.scn_func, ==, POOL_SCAN_RESILVER); zio_flags |= ZIO_FLAG_RESILVER; + zio_priority = ZIO_PRIORITY_RESILVER; needs_io = B_FALSE; scan_delay = zfs_resilver_delay; } @@ -1700,7 +1703,7 @@ dsl_scan_scrub_cb(dsl_pool_t *dp, delay(scan_delay); zio_nowait(zio_read(NULL, spa, bp, data, size, - dsl_scan_scrub_done, NULL, ZIO_PRIORITY_SCRUB, + dsl_scan_scrub_done, NULL, zio_priority, zio_flags, zb)); } |