diff options
author | George Wilson <[email protected]> | 2016-01-22 16:41:02 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-01-25 13:15:17 -0800 |
commit | ba5ad9a48d720c5d13e1b70e779d8e3af7199195 (patch) | |
tree | e25f6288c46a94b0c62581407d0fb5228e733242 /module/zfs/dsl_scan.c | |
parent | 0a1f8cd9994427286c4663cccdeeae0de10cea19 (diff) |
Illumos 6251 - add tunable to disable free_bpobj processing
6251 - add tunable to disable free_bpobj processing
Reviewed by: Matthew Ahrens <[email protected]>
Reviewed by: Prakash Surya <[email protected]>
Reviewed by: Simon Klinkert <[email protected]>
Reviewed by: Richard Elling <[email protected]>
Reviewed by: Albert Lee <[email protected]>
Reviewed by: Xin Li <[email protected]>
Approved by: Garrett D'Amore <[email protected]>
References:
https://www.illumos.org/issues/6251
https://github.com/illumos/illumos-gate/commit/139510f
Porting notes:
- Added as module option declaration.
- Added to zfs-module-parameters.5 man page.
Ported-by: Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'module/zfs/dsl_scan.c')
-rw-r--r-- | module/zfs/dsl_scan.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/module/zfs/dsl_scan.c b/module/zfs/dsl_scan.c index 477da2a5f..2b95561a9 100644 --- a/module/zfs/dsl_scan.c +++ b/module/zfs/dsl_scan.c @@ -20,7 +20,7 @@ */ /* * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright (c) 2011, 2014 by Delphix. All rights reserved. + * Copyright (c) 2011, 2015 by Delphix. All rights reserved. */ #include <sys/dsl_scan.h> @@ -76,6 +76,11 @@ ulong zfs_free_max_blocks = 100000; ((scn)->scn_phys.scn_func == POOL_SCAN_SCRUB || \ (scn)->scn_phys.scn_func == POOL_SCAN_RESILVER) +/* + * Enable/disable the processing of the free_bpobj object. + */ +int zfs_free_bpobj_enabled = 1; + /* the order has to match pool_scan_type */ static scan_cb_t *scan_funcs[POOL_SCAN_FUNCS] = { NULL, @@ -1502,7 +1507,8 @@ dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx) * have to worry about traversing it. It is also faster to free the * blocks than to scrub them. */ - if (spa_version(dp->dp_spa) >= SPA_VERSION_DEADLISTS) { + if (zfs_free_bpobj_enabled && + spa_version(dp->dp_spa) >= SPA_VERSION_DEADLISTS) { scn->scn_is_bptree = B_FALSE; scn->scn_zio_root = zio_root(dp->dp_spa, NULL, NULL, ZIO_FLAG_MUSTSUCCEED); @@ -1918,4 +1924,7 @@ MODULE_PARM_DESC(zfs_no_scrub_prefetch, "Set to disable scrub prefetching"); module_param(zfs_free_max_blocks, ulong, 0644); MODULE_PARM_DESC(zfs_free_max_blocks, "Max number of blocks freed in one txg"); + +module_param(zfs_free_bpobj_enabled, int, 0644); +MODULE_PARM_DESC(zfs_free_bpobj_enabled, "Enable processing of the free_bpobj"); #endif |