diff options
author | Martin Matuska <mm@FreeBSD.org> | 2021-02-15 08:10:01 +0000 |
---|---|---|
committer | Martin Matuska <mm@FreeBSD.org> | 2021-02-15 09:56:08 +0000 |
commit | 5dce03847fdc7bc6eb959282c0ae2117b1991746 (patch) | |
tree | 250a48bc3100fa4a8c39572787f1053758a7a628 /sys/contrib/openzfs/module | |
parent | f15e18a642cb3f7ebc747f8e9cdf11274140107d (diff) | |
download | src-5dce03847fdc7bc6eb959282c0ae2117b1991746.tar.gz src-5dce03847fdc7bc6eb959282c0ae2117b1991746.zip |
zfs: Avoid updating the L2ARC device header unnecessarily
From openzfs-master 0ae184a6b commit message:
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.
Cherry-picked from openzfs 0ae184a6baaf71e155e9b19af81b75474622ff58
Patch Author: George Amanakis <gamanakis@gmail.com>
MFC after: 3 days
Reviewed by: delphij
Differential Revision: https://reviews.freebsd.org/D28682
Diffstat (limited to 'sys/contrib/openzfs/module')
-rw-r--r-- | sys/contrib/openzfs/module/zfs/arc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/contrib/openzfs/module/zfs/arc.c b/sys/contrib/openzfs/module/zfs/arc.c index e05b11d51942..fecc752e16ff 100644 --- a/sys/contrib/openzfs/module/zfs/arc.c +++ b/sys/contrib/openzfs/module/zfs/arc.c @@ -9062,6 +9062,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); @@ -9293,7 +9294,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); } |