mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Don't upgrade a metaslab when the pool is not writable
Illumos 4982 added code to metaslab_fragmentation() to proactively update space maps when the spacemap_histogram feature is enabled. This should only happen when the pool is writeable. References: https://www.illumos.org/issues/4982 https://github.com/illumos/illumos-gate/commit/2e4c998 Signed-off-by: Tim Chase <tim@chase2k.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #2595
This commit is contained in:
parent
f3a7f6610f
commit
8b0a0840b4
@ -1395,13 +1395,16 @@ metaslab_fragmentation(metaslab_t *msp)
|
|||||||
* so that we upgrade next time we encounter it.
|
* so that we upgrade next time we encounter it.
|
||||||
*/
|
*/
|
||||||
if (msp->ms_sm->sm_dbuf->db_size != sizeof (space_map_phys_t)) {
|
if (msp->ms_sm->sm_dbuf->db_size != sizeof (space_map_phys_t)) {
|
||||||
uint64_t txg = spa_syncing_txg(spa);
|
|
||||||
vdev_t *vd = msp->ms_group->mg_vd;
|
vdev_t *vd = msp->ms_group->mg_vd;
|
||||||
|
|
||||||
|
if (spa_writeable(vd->vdev_spa)) {
|
||||||
|
uint64_t txg = spa_syncing_txg(spa);
|
||||||
|
|
||||||
msp->ms_condense_wanted = B_TRUE;
|
msp->ms_condense_wanted = B_TRUE;
|
||||||
vdev_dirty(vd, VDD_METASLAB, msp, txg + 1);
|
vdev_dirty(vd, VDD_METASLAB, msp, txg + 1);
|
||||||
spa_dbgmsg(spa, "txg %llu, requesting force condense: "
|
spa_dbgmsg(spa, "txg %llu, requesting force condense: "
|
||||||
"msp %p, vd %p", txg, msp, vd);
|
"msp %p, vd %p", txg, msp, vd);
|
||||||
|
}
|
||||||
return (ZFS_FRAG_INVALID);
|
return (ZFS_FRAG_INVALID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user