diff --git a/module/zfs/arc.c b/module/zfs/arc.c index 17193ed079..8bf5ce09aa 100644 --- a/module/zfs/arc.c +++ b/module/zfs/arc.c @@ -4460,7 +4460,7 @@ restart: * meta buffers. Requests to the upper layers will be made with * increasingly large scan sizes until the ARC is below the limit. */ - if (meta_used > arc_meta_limit) { + if (meta_used > arc_meta_limit || arc_available_memory() < 0) { if (type == ARC_BUFC_DATA) { type = ARC_BUFC_METADATA; } else {