freebsd-dev/sys/geom
Kirk McKusick 037331ddbd When read requests are sent from a filesystem running above g_journal,
the g_journal level needs to check whether it is holding a newer
copy of the block than that which exists on the disk. If so, it
needs to return its copy. If not, it should pass the request down
to the disk to fulfill. It currently considers six queues:

0) delayed queue,
1) unsent (current queue),
2) in-flight to the journal (flush queue),
3) active journal (active queue),
4) inactive journal (inactive queue), and
5) inflight to the disk (copy queue).

Checking on two of these queues is unnecessary:

0) The delayed requests should not be used for reads because they
   have not yet been entered into the journal, so their value should
   reflect the disk contents, not the future contents that are not
   yet committed.

2) Because all the bio's in the flush queue are also found on the
   active queue, there is no need to inspect the flush queue for
   reads since they will be found when searching the active queue.

Submitted by: Dr. Andreas Longwitz <longwitz@incore.de>
Discussed with: kib
MFC after: 1 week
2017-08-13 18:09:22 +00:00
..
bde Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
cache Unsigned values can never be less than 0. 2014-08-07 21:56:37 +00:00
concat Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
eli Dump md_iterations as signed, which it really is. 2017-04-21 07:43:44 +00:00
gate Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
journal When read requests are sent from a filesystem running above g_journal, 2017-08-13 18:09:22 +00:00
label Relax checking if the privider size matches size recorded in the 2016-07-18 05:00:01 +00:00
linux_lvm Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
mirror Synchronize unclean mirrors before adding them to a running gmirror. 2017-05-02 23:29:42 +00:00
mountver Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
multipath Report disk addition errors on add or create subcommand. 2017-01-20 13:49:04 +00:00
nop Make geom_nop(4) collect statistics on all types of BIOs, not just 2015-10-10 09:03:31 +00:00
part Add alias support to gpart. 2017-08-07 21:12:33 +00:00
raid g_raid: Prevent tasters from attempting excessively large reads 2017-01-12 06:58:31 +00:00
raid3 Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
sched Cleanup unnecessary semicolons from the kernel. 2016-04-10 23:07:00 +00:00
shsec Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
stripe Use g_wither_provider() where applicable. 2016-09-23 21:29:40 +00:00
uzip Add MD_VERIFY option to enable O_VERIFY in open for vnode type. 2017-05-31 21:18:11 +00:00
vinum Fix logic error in gvinum's gv_set_sd_state() 2017-01-08 17:56:54 +00:00
virstor g_virstor.h: macro parenthesization 2017-06-30 22:01:18 +00:00
zero
geom_aes.c
geom_bsd_enc.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_bsd.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom_ccd.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_ctl.c geom: unsign some types to match their definitions and avoid overflows. 2016-04-27 15:10:40 +00:00
geom_ctl.h
geom_dev.c Eliminate useless adjustments of aliased device. 2017-08-07 22:42:46 +00:00
geom_disk.c Expose API to allow disks to ask for alias names in devfs. 2017-08-07 21:12:38 +00:00
geom_disk.h Expose API to allow disks to ask for alias names in devfs. 2017-08-07 21:12:38 +00:00
geom_dump.c Add aliasing concept to geom. 2017-08-07 21:12:28 +00:00
geom_event.c Remove asserts that Giant is not held on entrance into geom KPI, which 2016-05-20 08:22:20 +00:00
geom_flashmap.c - Allow different slicers for different flash types to be registered 2017-02-22 10:21:39 +00:00
geom_fox.c Also provide a warning for geom_fox. 2017-08-09 16:37:37 +00:00
geom_int.h
geom_io.c Add BUF_TRACKING and FULL_BUF_TRACKING buffer debugging 2016-10-31 23:09:52 +00:00
geom_kern.c Remove unneeded Giant locking around kthreads creation. 2016-05-20 08:28:11 +00:00
geom_map.c build: Unbreak LINT 2016-12-21 01:39:11 +00:00
geom_mbr_enc.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_mbr.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom_redboot.c [geom_redboot] Extend geom_redboot to handle non-zero fis offset. 2016-10-04 16:35:38 +00:00
geom_slice.c
geom_slice.h
geom_subr.c Add aliasing concept to geom. 2017-08-07 21:12:28 +00:00
geom_sunlabel_enc.c sys/geom: spelling fixes in comments. 2016-04-29 20:56:58 +00:00
geom_sunlabel.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom_vfs.c Fix typo. 2017-05-18 08:25:07 +00:00
geom_vfs.h
geom_vol_ffs.c Mark geom classes as deprecated. 2017-08-09 16:15:24 +00:00
geom.h Add aliasing concept to geom. 2017-08-07 21:12:28 +00:00
notes