diff --git a/sys/vfs/hammer/hammer_object.c b/sys/vfs/hammer/hammer_object.c index 530713b..799c9c0 100644 --- a/sys/vfs/hammer/hammer_object.c +++ b/sys/vfs/hammer/hammer_object.c @@ -2016,6 +2016,15 @@ retry: } if (error) break; + + /* + * Deleting large ranges (e.g. like a 90G file) which are + * all cached can create issues, try to mitigate the cpu use. + */ + if (++ip->hmp->check_yield > hammer_yield_check) { + ip->hmp->check_yield = 0; + lwkt_user_yield(); + } ran_beg = off; /* for restart */ error = hammer_ip_next(cursor); }