mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 03:19:35 +03:00
OpenZFS 7915 - checks in l2arc_evict could use some cleaning up
Authored by: Andriy Gapon <avg@FreeBSD.org> Reviewed by: Dan Kimmel <dan.kimmel@delphix.com> Reviewed by: Prakash Surya <prakash.surya@delphix.com> Approved by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Ported-by: Giuseppe Di Natale <dinatale2@llnl.gov> OpenZFS-issue: https://www.illumos.org/issues/7915 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/836a00c Closes #6375
This commit is contained in:
parent
e98b611725
commit
f06f53fa3f
@ -7242,18 +7242,16 @@ top:
|
|||||||
goto top;
|
goto top;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HDR_L2_WRITE_HEAD(hdr)) {
|
|
||||||
/*
|
/*
|
||||||
* We hit a write head node. Leave it for
|
* A header can't be on this list if it doesn't have L2 header.
|
||||||
* l2arc_write_done().
|
|
||||||
*/
|
*/
|
||||||
list_remove(buflist, hdr);
|
ASSERT(HDR_HAS_L2HDR(hdr));
|
||||||
mutex_exit(hash_lock);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!all && HDR_HAS_L2HDR(hdr) &&
|
/* Ensure this header has finished being written. */
|
||||||
(hdr->b_l2hdr.b_daddr > taddr ||
|
ASSERT(!HDR_L2_WRITING(hdr));
|
||||||
|
ASSERT(!HDR_L2_WRITE_HEAD(hdr));
|
||||||
|
|
||||||
|
if (!all && (hdr->b_l2hdr.b_daddr >= taddr ||
|
||||||
hdr->b_l2hdr.b_daddr < dev->l2ad_hand)) {
|
hdr->b_l2hdr.b_daddr < dev->l2ad_hand)) {
|
||||||
/*
|
/*
|
||||||
* We've evicted to the target address,
|
* We've evicted to the target address,
|
||||||
@ -7263,7 +7261,6 @@ top:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(HDR_HAS_L2HDR(hdr));
|
|
||||||
if (!HDR_HAS_L1HDR(hdr)) {
|
if (!HDR_HAS_L1HDR(hdr)) {
|
||||||
ASSERT(!HDR_L2_READING(hdr));
|
ASSERT(!HDR_L2_READING(hdr));
|
||||||
/*
|
/*
|
||||||
@ -7286,9 +7283,6 @@ top:
|
|||||||
arc_hdr_set_flags(hdr, ARC_FLAG_L2_EVICTED);
|
arc_hdr_set_flags(hdr, ARC_FLAG_L2_EVICTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ensure this header has finished being written */
|
|
||||||
ASSERT(!HDR_L2_WRITING(hdr));
|
|
||||||
|
|
||||||
arc_hdr_l2hdr_destroy(hdr);
|
arc_hdr_l2hdr_destroy(hdr);
|
||||||
}
|
}
|
||||||
mutex_exit(hash_lock);
|
mutex_exit(hash_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user