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 <behlendorf1@llnl.gov> Signed-off-by: George Amanakis <gamanakis@gmail.com> Closes #11522 Closes #11537
This commit is contained in:
parent
416015ef54
commit
0ae184a6ba
|
@ -9068,6 +9068,7 @@ l2arc_write_buffers(spa_t *spa, l2arc_dev_t *dev, uint64_t target_sz)
|
||||||
l2arc_write_callback_t *cb = NULL;
|
l2arc_write_callback_t *cb = NULL;
|
||||||
zio_t *pio, *wzio;
|
zio_t *pio, *wzio;
|
||||||
uint64_t guid = spa_load_guid(spa);
|
uint64_t guid = spa_load_guid(spa);
|
||||||
|
l2arc_dev_hdr_phys_t *l2dhdr = dev->l2ad_dev_hdr;
|
||||||
|
|
||||||
ASSERT3P(dev->l2ad_vdev, !=, NULL);
|
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
|
* Although we did not write any buffers l2ad_evict may
|
||||||
* have advanced.
|
* have advanced.
|
||||||
*/
|
*/
|
||||||
l2arc_dev_hdr_update(dev);
|
if (dev->l2ad_evict != l2dhdr->dh_evict)
|
||||||
|
l2arc_dev_hdr_update(dev);
|
||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue