freebsd-skq/sys
kib 4247222fcc 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
2012-12-28 23:08:30 +00:00
..
amd64 Revert r243960 based on feedback regarding keeping x86 headers unified 2012-12-13 21:27:20 +00:00
arm Add makeshift implementation for framebuffer console's cursor 2012-12-28 03:18:05 +00:00
boot Move the 64-bit _setjmp to lib/libstand. 2012-12-21 15:15:35 +00:00
bsm Merge OpenBSM 1.2-alpha2 changes from contrib/openbsm to 2012-12-01 13:46:37 +00:00
cam Make SES driver to not fall out on some errors in Additional Status page. 2012-12-20 19:51:32 +00:00
cddl zfs: solaris doesn't have KM_ZERO, kmem_zalloc should be used instead 2012-12-23 19:58:41 +00:00
compat Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
conf Replace generic ARM11 option with more specific 2012-12-20 04:32:02 +00:00
contrib Allow this file to build on FreeBSD. 2012-11-27 02:03:41 +00:00
crypto Revert previous commit... 2012-10-10 08:36:38 +00:00
ddb Small textdump enhancements. 2012-11-01 04:07:08 +00:00
dev Fix typo in comment. 2012-12-28 21:59:47 +00:00
fs Do not force a writer to the devfs file to drain the buffer writes. 2012-12-23 22:43:27 +00:00
gdb
geom Reset provider-specific fields when resending I/O request in low memory 2012-12-26 20:07:47 +00:00
gnu/fs r16312 is not any longer real since many years (likely since when VFS 2012-11-19 22:43:45 +00:00
i386 Revert r243960 based on feedback regarding keeping x86 headers unified 2012-12-13 21:27:20 +00:00
ia64 Flip the semantic of M_NOWAIT to only require the allocation to not 2012-11-14 20:01:40 +00:00
isa
kern Make it possible to atomically resume writes on the mount and account 2012-12-28 23:08:30 +00:00
kgssapi Piete.Brooks at cl.cam.ac.uk reported via email a crash which was 2012-12-18 00:25:48 +00:00
libkern Sync strlcpy with userland version. 2012-11-03 04:29:24 +00:00
mips Eliminate some definitions that haven't been used in a decade or more. 2012-12-19 05:07:27 +00:00
modules Add the btcoex code into the module compilation. 2012-12-03 23:38:08 +00:00
net Add an ability to set net.link.stf.permit_rfc1918 from the loader. 2012-12-27 21:26:08 +00:00
net80211 if_start() is being used here as a way of kick-starting the new queue 2012-12-22 01:17:49 +00:00
netatalk Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netgraph Use DEVMETHOD_END, as suggested by hselasky@. 2012-12-26 19:14:21 +00:00
netinet Some cleanups. 2012-12-27 08:10:58 +00:00
netinet6 The SIOCSIFFLAGS ioctl handler runs if_up()/if_down() that notify 2012-12-25 13:01:58 +00:00
netipsec Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netipx Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netnatm Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netncp Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
netpfil In netpfil/pf: 2012-12-28 09:19:49 +00:00
netsmb Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
nfs Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
nfsclient Move the NFSv4.1 client patches over from projects/nfsv4.1-client 2012-12-08 22:52:39 +00:00
nfsserver Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
nlm Remove the support for using non-mpsafe filesystem modules. 2012-10-22 17:50:54 +00:00
ofed Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
opencrypto Revert previous commit... 2012-10-10 08:36:38 +00:00
pc98 Reduce diffs against i386. 2012-11-10 13:48:41 +00:00
pci Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
powerpc Mechanically substitute flags from historic mbuf allocator with 2012-12-05 08:04:20 +00:00
rpc Add support for backchannels to the kernel RPC. Backchannels 2012-12-08 00:29:16 +00:00
security Four .c files from OpenBSM are used, in modified form, by the kernel to 2012-12-15 15:21:09 +00:00
sparc64 Revert r237842 and switch back to SCHED_ULE. All problems I encountered 2012-12-16 20:54:07 +00:00
sys Make it possible to atomically resume writes on the mount and account 2012-12-28 23:08:30 +00:00
teken
tools Fix build on ARM (and probably other platforms) 2012-12-28 06:52:53 +00:00
ufs Make it possible to atomically resume writes on the mount and account 2012-12-28 23:08:30 +00:00
vm Comment fix: there is no ub_ptr, instead explain meaning of uz_count 2012-12-21 10:09:45 +00:00
x86 Add bus_space_read_8 and bus_space_write_8 for amd64. 2012-12-13 21:40:11 +00:00
xdr
xen Move the corresponding MTX_SYSINIT() next to their struct mtx declaration 2012-10-26 17:31:35 +00:00
Makefile Run cscope with the -v parameter to make it more user-friendly. 2012-12-02 20:51:24 +00:00