freebsd-skq/sys/fs/msdosfs
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
..
bootsect.h msdosfs: use C99 types 2017-05-19 18:13:41 +00:00
bpb.h msdosfs: use C99 types 2017-05-19 18:13:41 +00:00
denode.h makefs: share denode.h between kernel msdosfs and makefs 2019-08-21 19:07:13 +00:00
direntry.h Revert msdosfs MAKEFS #ifdef changes from r319870 2018-07-24 21:10:17 +00:00
fat.h buf: Add B_INVALONERR flag to discard data 2019-09-11 21:24:14 +00:00
msdosfs_conv.c msdosfs: trim EOL whitespace 2018-07-31 12:44:28 +00:00
msdosfs_denode.c Rework v_object lifecycle for vnodes. 2019-08-29 07:50:25 +00:00
msdosfs_fat.c buf: Add B_INVALONERR flag to discard data 2019-09-11 21:24:14 +00:00
msdosfs_iconv.c sys/fs: further adoption of SPDX licensing ID tags. 2017-11-27 15:15:37 +00:00
msdosfs_lookup.c msdosfs: Remove redundant brelse() after r294954 2019-09-06 08:08:10 +00:00
msdosfs_vfsops.c buf: Add B_INVALONERR flag to discard data 2019-09-11 21:24:14 +00:00
msdosfs_vnops.c msdosfs: Remove redundant brelse() after r294954 2019-09-06 08:08:10 +00:00
msdosfsmount.h msdosfsmount.h: fix ifdef comment 2019-09-09 18:35:17 +00:00