Page MenuHomeFreeBSD

D58346.diff
No OneTemporary

D58346.diff

diff --git a/sys/contrib/openzfs/module/zfs/arc.c b/sys/contrib/openzfs/module/zfs/arc.c
--- a/sys/contrib/openzfs/module/zfs/arc.c
+++ b/sys/contrib/openzfs/module/zfs/arc.c
@@ -11580,9 +11580,15 @@
l2arc_range_check_overlap(dev->l2ad_hand, dev->l2ad_evict, start) ||
l2arc_range_check_overlap(dev->l2ad_hand, dev->l2ad_evict, end);
- return (start >= dev->l2ad_start && end <= dev->l2ad_end &&
- asize > 0 && asize <= sizeof (l2arc_log_blk_phys_t) &&
- (!evicted || dev->l2ad_first));
+ if (asize == 0 || asize > sizeof (l2arc_log_blk_phys_t) ||
+ start < dev->l2ad_start || end > dev->l2ad_end)
+ return (B_FALSE);
+
+ /* On a first sweep only the region below the write hand was written. */
+ if (dev->l2ad_first)
+ return (end < dev->l2ad_hand);
+
+ return (!evicted);
}
/*

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 23, 3:57 AM (2 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35282879
Default Alt Text
D58346.diff (812 B)

Event Timeline