diff options
author | George Amanakis <[email protected]> | 2021-01-28 18:20:03 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2021-01-28 09:20:03 -0800 |
commit | 0ae184a6baaf71e155e9b19af81b75474622ff58 (patch) | |
tree | 8fbbe339d80c749dabdc04c1dda1fdcf1c0f0637 /module | |
parent | 416015ef544183aa1310d7353f28b369f8b89928 (diff) |
Avoid updating the L2ARC device header unnecessarily
If we do not write any buffers to the cache device and the evict hand
has not advanced do not update the cache device header.
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: George Amanakis <[email protected]>
Closes #11522
Closes #11537
Diffstat (limited to 'module')
-rw-r--r-- | module/zfs/arc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/module/zfs/arc.c b/module/zfs/arc.c index 216a985fe..b4f0c8a85 100644 --- a/module/zfs/arc.c +++ b/module/zfs/arc.c @@ -9068,6 +9068,7 @@ l2arc_write_buffers(spa_t *spa, l2arc_dev_t *dev, uint64_t target_sz) l2arc_write_callback_t *cb = NULL; zio_t *pio, *wzio; uint64_t guid = spa_load_guid(spa); + l2arc_dev_hdr_phys_t *l2dhdr = dev->l2ad_dev_hdr; ASSERT3P(dev->l2ad_vdev, !=, NULL); @@ -9299,7 +9300,8 @@ l2arc_write_buffers(spa_t *spa, l2arc_dev_t *dev, uint64_t target_sz) * Although we did not write any buffers l2ad_evict may * have advanced. */ - l2arc_dev_hdr_update(dev); + if (dev->l2ad_evict != l2dhdr->dh_evict) + l2arc_dev_hdr_update(dev); return (0); } |