freebsd-dev/sys
Konstantin Belousov be913821af The softdep_setup_freeblocks() adds worklist items before
deallocate_dependencies() is done. This opens a race between softdep
thread and the thread that does the truncation:
  A write of the indirect block causes the freeblks to become
  ALLCOMPLETE while softdep_setup_freeblocks() dropped softdep lock. And
  then, softdep_disk_write_complete() would reassign the workitem to the
  mount point worklist, causing premature processing of the workitem, or
  journal write exhaust the fb_jfreeblkhd and handle_written_jfreeblk does
  the same reassign.
indir_trunc() then would find the indirect block that is locked (with lock
owned by kernel) but without any dependencies, causing it to hang in
getblk() waiting for buffer lock.

Do not mark freeblks as DEPCOMPLETE until deallocate_dependencies()
finished.

Analyzed, suggested and reviewed by:	jeff
Tested by:	pho
2010-11-11 11:54:01 +00:00
..
amd64 Make APM emulation look more closer to its origin. Use device_get_softc(9) 2010-11-10 18:50:12 +00:00
arm - Remove <machine/mutex.h>. Most of the headers were empty, and the 2010-11-09 20:46:41 +00:00
boot Fix typos. 2010-11-09 10:59:09 +00:00
bsm
cam When requesting sense data for SIM not doing it automatically (such as 2010-11-08 15:59:41 +00:00
cddl Validate whether the zfs_cmd_t submitted from userland is not smaller than 2010-11-05 22:18:09 +00:00
compat Break long line. 2010-11-08 15:14:14 +00:00
conf Complete the integration of tbemd branch into head. 2010-11-10 06:39:49 +00:00
contrib o) Recognize the Lanner MR-730. 2010-11-08 21:22:55 +00:00
crypto Change two missed instances of 'retq' in aeskeys_i386.S to 'retl', which 2010-10-13 17:55:53 +00:00
ddb One more use for _SIG_VALID. 2010-07-12 10:18:10 +00:00
dev Add a man page for usb_quirk module, plus references in other man pages, 2010-11-10 23:45:44 +00:00
fs Remove unused includes of <sys/mutex.h> and <machine/mutex.h>. 2010-11-09 20:41:10 +00:00
gdb there must be only one SYSINIT with SI_SUB_RUN_SCHEDULER+SI_ORDER_ANY order 2010-09-30 17:05:23 +00:00
geom In r212554 name of G_PART_PARM_GEOM and G_PART_PARM_PROVIDER 2010-11-10 14:38:51 +00:00
gnu The r184588 changed the layout of struct export_args, causing an ABI 2010-10-10 07:05:47 +00:00
i386 Make APM emulation look more closer to its origin. Use device_get_softc(9) 2010-11-10 18:50:12 +00:00
ia64 - Remove <machine/mutex.h>. Most of the headers were empty, and the 2010-11-09 20:46:41 +00:00
isa bus_add_child: change type of order parameter to u_int 2010-09-10 11:19:03 +00:00
kern Remove unneeded conditional. 2010-11-11 08:15:12 +00:00
kgssapi
libkern Make the RPC specific __rpc_inet_ntop() and __rpc_inet_pton() general 2010-09-24 15:01:45 +00:00
mips Switch to the new network driver nlge, the old rge driver is deprecated now. 2010-11-10 10:23:39 +00:00
modules Refactor acpi_machdep.c for amd64 and i386, move APM emulation into a new 2010-11-10 01:29:56 +00:00
net Sync DLTs with the latest pcap version. 2010-10-29 18:41:09 +00:00
net80211 Instead of using the AMRR ratectl algo as default for drivers which have 2010-11-06 18:17:20 +00:00
netatalk
netgraph When calling panic(), always pass a format string. 2010-10-13 17:21:21 +00:00
netinet Fix so that a multicast packet can be sent 2010-11-11 05:40:39 +00:00
netinet6 Make the IPsec SADB embedded route cache a union to be able to hold both the 2010-10-23 20:35:40 +00:00
netipsec Announce both IPsec and UDP Encap (NAT-T) if available for 2010-10-30 18:52:44 +00:00
netipx
netnatm
netncp
netsmb
nfs Fix the type of the 3rd argument for nm_getinfo so that it works 2010-10-19 11:55:58 +00:00
nfsclient Add missing "readahead" to the nfs_opts list. 2010-10-27 14:08:37 +00:00
nfsserver Fix a bug in r214049. The nvp == vp case shall be handled specially 2010-11-05 21:13:16 +00:00
nlm Modify the NFS clients and the NLM so that the NLM can be used 2010-10-19 00:20:00 +00:00
opencrypto Add support for AES-XTS. 2010-09-23 11:52:32 +00:00
pc98 - Remove <machine/mutex.h>. Most of the headers were empty, and the 2010-11-09 20:46:41 +00:00
pci Remove standard PCI configuration space register definitions. 2010-11-08 22:10:51 +00:00
powerpc Add support for the IMISS, DLMISS, and DSMISS traps required to run 2010-11-11 02:40:00 +00:00
rpc Fix the krpc so that it can handle NFSv3,UDP mounts with a read/write 2010-10-13 00:57:14 +00:00
security Fix typos. 2010-11-09 10:59:09 +00:00
sparc64 Enable reservation-based physical memory allocation. Even without the 2010-11-10 17:57:34 +00:00
sun4v - Remove <machine/mutex.h>. Most of the headers were empty, and the 2010-11-09 20:46:41 +00:00
sys Remove unexisted since r212541 timer1hz/timer2hz variables. 2010-11-10 16:42:36 +00:00
teken Partially implement the mysterious cons25 \e[x escape sequence. 2010-11-05 00:56:21 +00:00
tools Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
ufs The softdep_setup_freeblocks() adds worklist items before 2010-11-11 11:54:01 +00:00
vm Enable reservation-based physical memory allocation. Even without the 2010-11-10 17:57:34 +00:00
x86 Make APM emulation look more closer to its origin. Use device_get_softc(9) 2010-11-10 18:50:12 +00:00
xdr
xen Improve the Xen para-virtualized device infrastructure of FreeBSD: 2010-10-19 20:53:30 +00:00
Makefile