freebsd-dev/sys
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
..
amd64 Split identify_cpu() into two functions for amd64 as we do for i386. This 2017-08-09 18:09:09 +00:00
arm arm: enable ARM_MANY_BOARD in NOTES for LINT build 2017-08-11 19:49:29 +00:00
arm64 Reliably enable debug exceptions on all CPUs. 2017-08-12 18:42:54 +00:00
boot Support for v1.10 (latest) of RISC-V privilege specification. 2017-08-10 14:18:09 +00:00
bsm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
cam Do not loose CCB flags after r320493. 2017-08-09 09:13:15 +00:00
cddl MFV r322242: 8373 TXG_WAIT in ZIL commit path 2017-08-08 11:26:03 +00:00
compat Make sure the "vm_flags" and "vm_page_prot" fields get set correctly 2017-08-11 10:44:40 +00:00
conf Support for v1.10 (latest) of RISC-V privilege specification. 2017-08-10 14:18:09 +00:00
contrib Fix matchcing of NATed ICMP queries (resolving NATed MTU discovery). 2017-08-05 00:28:42 +00:00
crypto Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
ddb Include opt files in the kernel with "" instead of <>. 2017-07-10 05:08:01 +00:00
dev Move NVME controller shutdown from being called as part of module unloading 2017-08-12 22:13:06 +00:00
fs Bump the maximum file name length in pseudofs filesystems to 48. 2017-08-03 21:35:53 +00:00
gdb
geom When read requests are sent from a filesystem running above g_journal, 2017-08-13 18:09:22 +00:00
gnu Update DTS files from Linux 4.12 2017-07-09 13:53:32 +00:00
i386 Split identify_cpu() into two functions for amd64 as we do for i386. This 2017-08-09 18:09:09 +00:00
isa Stop calling atrtc_set() from the xen timer clock_settime() method. That 2017-08-11 19:02:11 +00:00
kern The *_meta_* functions include a radix parameter, a blk parameter, and 2017-08-13 16:39:49 +00:00
kgssapi
libkern x86/crc32_sse42.c: quiet unused function warning 2017-08-11 17:05:31 +00:00
mips [ar71xx] get rid of ath_pci - it's built as a module now. 2017-07-28 01:17:38 +00:00
modules Performance enhancements to reduce CPU utililization for large number of 2017-08-11 17:43:25 +00:00
net Don't leak mbufs if clusers exceeds the number of segments. This would 2017-08-10 03:43:23 +00:00
net80211 sys/net8021: Add missing braces in setcurchan(). 2017-08-01 03:13:43 +00:00
netgraph Check return value from soaccept(). 2017-06-14 16:13:20 +00:00
netinet Fix comment typo. 2017-08-09 10:46:34 +00:00
netinet6 After inpcb route caching was put back in place there is no need for 2017-07-27 13:03:36 +00:00
netipsec Make user supplied data checks a bit stricter. 2017-08-09 19:58:38 +00:00
netpfil pf_get_sport(): Prevent possible endless loop when searching for an unused nat port 2017-08-08 21:09:26 +00:00
netsmb
nfs Improve FHA locality control for NFS read/write requests. 2017-07-31 15:23:19 +00:00
nfsclient Add an NFSv4.1 mount option for "use one openowner". 2017-04-13 21:54:19 +00:00
nfsserver
nlm Commit the 64-bit inode project. 2017-05-23 09:29:05 +00:00
ofed Change reject message type when destroying cm_id in ibore. 2017-08-03 09:31:10 +00:00
opencrypto Use const with some read-only buffers in opencrypto APIs. 2017-05-09 18:28:42 +00:00
powerpc Add cpufreq support for P1022 and MPC8536 2017-07-21 03:40:05 +00:00
riscv Support for v1.10 (latest) of RISC-V privilege specification. 2017-08-10 14:18:09 +00:00
rpc Listening sockets improvements. 2017-06-08 21:30:34 +00:00
security Correct bitwise test in mac_bsdextended ugidfw_rule_valid() 2017-06-13 01:17:58 +00:00
sparc64 Modify vm_page_grab_pages() to handle VM_ALLOC_NOWAIT. 2017-08-11 16:29:22 +00:00
sys The *_meta_* functions include a radix parameter, a blk parameter, and 2017-08-13 16:39:49 +00:00
teken Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
tests style(9): sort headers 2017-05-09 05:08:47 +00:00
tools make.conf: Add the possibility to use another DTC 2017-06-17 23:34:53 +00:00
ufs Since the switch to GPT disk labels, fsck for UFS/FFS has been 2017-08-09 05:17:21 +00:00
vm Modify vm_page_grab_pages() to handle VM_ALLOC_NOWAIT. 2017-08-11 16:29:22 +00:00
x86 srat: use pmap_unmapbios 2017-08-13 14:50:38 +00:00
xdr * limit size of buffers to RPC_MAXDATASIZE 2017-06-01 06:12:25 +00:00
xen
Makefile Remove glimpse make target added in r181432 2017-05-22 15:53:30 +00:00