diff options
| author | Maxim Sobolev <sobomax@FreeBSD.org> | 2026-10-13 02:45:12 +0000 |
|---|---|---|
| committer | Maxim Sobolev <sobomax@FreeBSD.org> | 2026-10-13 04:28:32 +0000 |
| commit | afe1dec7425c9f3bec1aafcfed15229a385894eb (patch) | |
| tree | 5664d085c8b80a7e955766a3882250685ea53246 /sys/conf/ldscript.mips | |
| parent | e8534ba3ad36b88e94de0a3174e9ab7ac04a929d (diff) | |
Check that once fsync(2), fdatasync(2), or a write(2) with O_SYNC or
O_DSYNC returns, the new data, the file size and every block pointer
leading to the data are on disk. The cases append a block, fill a hole,
append the first block that needs an indirect block and append below an
existing indirect block. Two more append after another write left a
new direct block unsynced, which with soft updates cuts the size and the
later pointers of an inode written meanwhile. With O_SYNC and O_DSYNC
on soft updates, those also check that the open already made the
unsynced block durable.
Each case runs on UFS without soft updates, with soft updates and with
SU+J.
The file systems live on md(4) and the checks read the inode, the
indirect block and the data block straight from the device with libufs
right after the synchronous call returns. There is no cache in front
of the disk device, so this shows what would survive a crash at that
moment without having to crash anything.
Sponsored by: Sippy Software, Inc.
Reviewed by: pho
Tested by: pho
Differential Revision: https://reviews.freebsd.org/D60134
MFC after: 1 month
Diffstat (limited to 'sys/conf/ldscript.mips')
0 files changed, 0 insertions, 0 deletions
