freebsd-skq/sys/ufs/ffs
kib 57921f916a Detect and optimize reads from the hole on UFS.
- Create getblkx(9) variant of getblk(9) which can return error.
- Add GB_NOSPARSE flag for getblk()/getblkx() which requests that BMAP
  was performed before the buffer is created, and EJUSTRETURN returned
  in case the requested block does not exist.
- Make ffs_read() use GB_NOSPARSE to avoid instantiating buffer (and
  allocating the pages for it), copying from zero_region instead.

The end result is less page allocations and buffer recycling when a
hole is read, which is important for some benchmarks.

Requested and reviewed by:	jeff
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
Differential revision:	https://reviews.freebsd.org/D14917
2018-05-13 09:47:28 +00:00
..
ffs_alloc.c Revert r313780 (UFS_ prefix) 2018-03-17 12:59:55 +00:00
ffs_balloc.c SPDX: Complete License ID tags for UFS. 2017-12-27 19:13:50 +00:00
ffs_extern.h Refactoring of reading and writing of the UFS/FFS superblock. 2018-01-26 00:58:32 +00:00
ffs_inode.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ffs_rawread.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ffs_snapshot.c Revert r327781, r328093, r328056: 2018-01-24 16:44:57 +00:00
ffs_softdep.c Renumber soft-update types starting at 1 instead of 0 to avoid confusion 2018-04-05 00:32:01 +00:00
ffs_subr.c This change is some refactoring of Mark Johnston's changes in r329375 2018-03-02 04:34:53 +00:00
ffs_suspend.c sys: general adoption of SPDX licensing ID tags. 2017-11-27 15:23:17 +00:00
ffs_tables.c sys: further adoption of SPDX licensing ID tags. 2017-11-20 19:43:44 +00:00
ffs_vfsops.c This change is some refactoring of Mark Johnston's changes in r329375 2018-03-02 04:34:53 +00:00
ffs_vnops.c Detect and optimize reads from the hole on UFS. 2018-05-13 09:47:28 +00:00
fs.h The goal of this change is to prevent accidental foot shooting by 2018-02-08 23:06:58 +00:00
softdep.h Renumber soft-update types starting at 1 instead of 0 to avoid confusion 2018-04-05 00:32:01 +00:00