freebsd-nq/sys/fs
Conrad Meyer aaa3852435 buf: Add B_INVALONERR flag to discard data
Setting the B_INVALONERR flag before a synchronous write causes the buf
cache to forcibly invalidate contents if the write fails (BIO_ERROR).

This is intended to be used to allow layers above the buffer cache to make
more informed decisions about when discarding dirty buffers without
successful write is acceptable.

As a proof of concept, use in msdosfs to handle failures to mark the on-disk
'dirty' bit during rw mount or ro->rw update.

Extending this to other filesystems is left as future work.

PR:		210316
Reviewed by:	kib (with objections)
Sponsored by:	Dell EMC Isilon
Differential Revision:	https://reviews.freebsd.org/D21539
2019-09-11 21:24:14 +00:00
..
autofs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
cd9660 cd9660: Remove redundant brelse() after r294954 2019-09-06 08:07:36 +00:00
cuse Free all allocated unit IDs in cuse(3) after the client character 2019-06-25 11:46:01 +00:00
deadfs Switch to use shared vnode locks for text files during image activation. 2019-05-05 11:20:43 +00:00
devfs Rework v_object lifecycle for vnodes. 2019-08-29 07:50:25 +00:00
ext2fs ext2fs: Remove redundant brelse() after r294954 2019-09-06 08:07:12 +00:00
fdescfs Ensure that directory entry padding bytes are zeroed. 2018-11-23 22:24:59 +00:00
fifofs fcntl: fix overflow when setting F_READAHEAD 2019-06-20 23:07:20 +00:00
fuse fusefs: Fix iosize for FUSE_WRITE in 7.8 compat mode 2019-09-11 19:29:40 +00:00
msdosfs buf: Add B_INVALONERR flag to discard data 2019-09-11 21:24:14 +00:00
nfs Delete the unused "nd" argument for nfsrv_checkdsattr(). 2019-09-04 22:37:28 +00:00
nfsclient Remove long-dead BUF_ASSERT_{,UN}HELD assertions 2019-09-05 21:43:33 +00:00
nfsserver Delete the unused "nd" argument for nfsrv_proxyds(). 2019-09-05 22:25:19 +00:00
nullfs nullfs: reduce areas protected by vnode interlock in null_lock 2019-09-01 02:52:00 +00:00
procfs Plug memory disclosures via ptrace(2). 2018-12-03 20:54:17 +00:00
pseudofs pseudofs: make readdir work without a pid again 2019-09-04 14:20:39 +00:00
smbfs Rework v_object lifecycle for vnodes. 2019-08-29 07:50:25 +00:00
tmpfs Change synchonization rules for vm_page reference counting. 2019-09-09 21:32:42 +00:00
udf Rework v_object lifecycle for vnodes. 2019-08-29 07:50:25 +00:00
unionfs vfs: add VOP_NEED_INACTIVE 2019-08-28 20:34:24 +00:00