mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-31 04:14:21 +03:00
Evicting too many bytes from MFU metadata
Without updating 'm' we evict from MFU metadata all that we wanted to evict from all metadata, including already evicted MRU metadata ('m' is the total amount of metadata we had at the beginning, and 'w' is the total amount of metadata we want to have). Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Theera K. <tkittich@hotmail.com> Closes #16521 Closes #16546
This commit is contained in:
parent
54278533a4
commit
0987892160
@ -4311,7 +4311,7 @@ arc_evict(void)
|
|||||||
|
|
||||||
/* Evict MFU metadata. */
|
/* Evict MFU metadata. */
|
||||||
w = wt * (int64_t)(arc_meta >> 16) >> 16;
|
w = wt * (int64_t)(arc_meta >> 16) >> 16;
|
||||||
e = MIN((int64_t)(asize - arc_c), (int64_t)(m - w));
|
e = MIN((int64_t)(asize - arc_c), (int64_t)(m - bytes - w));
|
||||||
bytes = arc_evict_impl(arc_mfu, ARC_BUFC_METADATA, e);
|
bytes = arc_evict_impl(arc_mfu, ARC_BUFC_METADATA, e);
|
||||||
total_evicted += bytes;
|
total_evicted += bytes;
|
||||||
mfum -= bytes;
|
mfum -= bytes;
|
||||||
|
Loading…
Reference in New Issue
Block a user