diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2021-01-30 02:10:34 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2021-02-12 01:02:19 +0000 |
commit | bf0db19339e770a82236b74f523be4b572bde15d (patch) | |
tree | 680eadebf82726c79c04c22fc4f258a813b9ea98 /sys/ufs/ufs/ufs_vnops.c | |
parent | 0281f88e5dbc8d6f819bf3f22dd11239ff5374ea (diff) | |
download | src-bf0db19339e770a82236b74f523be4b572bde15d.tar.gz src-bf0db19339e770a82236b74f523be4b572bde15d.zip |
buf SU hooks: track buf_start() calls with B_IOSTARTED flag
and only call buf_complete() if previously started. Some error paths,
like CoW failire, might skip buf_start() and do bufdone(), which itself
call buf_complete().
Various SU handle_written_XXX() functions check that io was started
and incomplete parts of the buffer data reverted before restoring them.
This is a useful invariant that B_IO_STARTED on buffer layer allows to
keep instead of changing check and panic into check and return.
Reported by: pho
Reviewed by: chs, mckusick
Tested by: pho
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundations
Diffstat (limited to 'sys/ufs/ufs/ufs_vnops.c')
0 files changed, 0 insertions, 0 deletions