vfs_subr: optimize inval_buf_range
Use a pctrie_lookup to avoid walking over low out-of-range buf list
entries, and an early break to avoid the high out-of-range
entries. Avoid writing almost identical loops for the dirty and clean
lists.
Because pctries are built for unsigned keys, and these are signed
values, handle the wraparound problem the same way that bnoreuselist()
does.
Reviewed by: kib
Tested by: pho
Differential Revision: https://reviews.freebsd.org/D46963