diff options
author | kib <kib@FreeBSD.org> | 2012-12-28 23:08:30 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-12-28 23:08:30 +0000 |
commit | 4247222fcc643b60a3b7a9f859bc22994ca75f4b (patch) | |
tree | 17461ae8de8771b3b7726b88cdeb957aaf3e054e /share/man | |
parent | bd8e345ca3212f607bc453c1c860e364601c1522 (diff) | |
download | FreeBSD-src-4247222fcc643b60a3b7a9f859bc22994ca75f4b.zip FreeBSD-src-4247222fcc643b60a3b7a9f859bc22994ca75f4b.tar.gz |
Make it possible to atomically resume writes on the mount and account
the write start, by adding a variation of the vfs_write_resume(9)
which accepts flags.
Use the new function to prevent a deadlock between parallel suspension
and snapshotting a UFS mount. The ffs_snapshot() code performed
vfs_write_resume() followed by vn_start_write() while owning the
snaplock. If the suspension intervene between resume and
vn_start_write(), the deadlock occured after the suspending thread
tried to lock the snaplock, most typically during the write in the
ffs_copyonwrite().
Reported and tested by: Andreas Longwitz <longwitz@incore.de>
Reviewed by: mckusick
MFC after: 2 weeks
X-MFC-note: make the vfs_write_resume(9) function a macro after the MFC,
in HEAD
Diffstat (limited to 'share/man')
0 files changed, 0 insertions, 0 deletions