freebsd-dev/sys
Don Lewis d07f87a218 Add a new struct buf flag bit, B_PERSISTENT, and use it to tag
struct bufs that are persistently held by ext2fs.  Ignore any buffers
with this flag in the code in boot() that counts "busy" and dirty
buffers and attempts to sync the dirty buffers, which is done before
attempting to unmount all the file systems during shutdown.

This fixes the problem caused by any ext2fs file systems that are
mounted at system shutdown time, which caused boot() to give up on
a non-zero number of buffers and skip the call to vfs_unmountall().
This left all the mounted file systems in a dirty state and caused
them to all require cleanup by fsck on reboot.

Move the two separate copies of the "busy" buffer test in boot()
to a separate function.

Nuke the useless spl() stuff in the ext2fs ULCK_BUF() macro.

Bring the PRINT_BUF_FLAGS definition in sys/buf.h up to date with
this and previous flag changes.

PR:		kern/56675, kern/85163
Tested by:	"Matthias Andree" matthias.andree at gmx.de
Reviewed by:	bde
MFC after:	3 days
2005-09-08 06:30:05 +00:00
..
alpha Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
amd64 Hook up the hptmv driver for amd64. 2005-09-08 03:29:18 +00:00
arm Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
boot net.graph.ngqfreemax has been deprecated. 2005-08-31 10:51:55 +00:00
bsm
cam Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
coda Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
compat Test the mbuf flags against the correct constant. The previous version 2005-08-30 16:21:51 +00:00
conf Hook up the hptmv driver for amd64. 2005-09-08 03:29:18 +00:00
contrib Wrap the new world order in __FreeBSD__ to ease future imports. 2005-08-09 11:59:02 +00:00
crypto Add VIA/ACE "PadLock" support as a crypto(9) driver. 2005-08-18 00:30:22 +00:00
ddb Remove the need to forward declare statics by moving them around. 2005-08-10 07:08:14 +00:00
dev Import new version of the HPTMV driver from Highpoint. The major change 2005-09-07 23:33:26 +00:00
doc
fs Ensure the full value is written into inode variables. 2005-09-07 10:32:58 +00:00
gdb
geom Remove a race condition that could result in processes being stuck 2005-09-04 19:14:19 +00:00
gnu Add a new struct buf flag bit, B_PERSISTENT, and use it to tag 2005-09-08 06:30:05 +00:00
i4b Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
i386 Eliminate unnecessary TLB invalidations by pmap_enter(). Specifically, 2005-09-04 19:06:27 +00:00
ia64 Milestone: enable SMP by default. 2005-09-05 21:36:28 +00:00
isa Add pnp and location info for the ISA bus. The pnp info is the 2005-08-01 07:03:10 +00:00
isofs/cd9660 - restore the ability to mount cd9660 filesystems as root by inverting 2005-08-14 04:19:36 +00:00
kern Add a new struct buf flag bit, B_PERSISTENT, and use it to tag 2005-09-08 06:30:05 +00:00
libkern - Fix checking range of strings of struct iconv_add_in in libsmb and libkiconv, 2005-08-24 12:38:26 +00:00
modules Hook up the hptmv driver for amd64. 2005-09-08 03:29:18 +00:00
net Forward declaring static variables as extern is invalid ISO-C. Now that 2005-09-07 10:06:14 +00:00
net80211 Properly set ic_curchan before calling back to device driver to do channel 2005-08-30 14:27:47 +00:00
netatalk Use the correct mbuf type for MGET(). 2005-08-30 16:28:46 +00:00
netatm Propagate rename of IFF_OACTIVE and IFF_RUNNING to IFF_DRV_OACTIVE and 2005-08-09 10:20:02 +00:00
netgraph Fix build. 2005-09-06 20:36:38 +00:00
netinet clear lock on error in O_LIMIT case of install_state 2005-09-04 17:33:40 +00:00
netinet6 IPv6 was improperly defining its malloc type the same as IPv4 (M_IPMADDR, 2005-09-07 10:11:49 +00:00
netipsec
netipx Forward declaring static variables as extern is invalid ISO-C. Now that 2005-09-07 10:06:14 +00:00
netkey SADB_UPDATE did not return an error when key length is invalid. 2005-08-22 07:05:14 +00:00
netnatm Forward declaring static variables as extern is invalid ISO-C. Now that 2005-09-07 10:06:14 +00:00
netncp Change API of mb_copy_t in libmchain so that netsmb can handle 2005-07-29 13:22:37 +00:00
netsmb Merge the dev_clone and dev_clone_cred event handlers into a single 2005-08-08 19:55:32 +00:00
nfs Fixes for NFS crashes on architectures that require strict alignment. 2005-07-14 20:08:27 +00:00
nfs4client
nfsclient FIx for a bug in the change that made nfs_timer() MPSAFE. We need to 2005-07-27 15:06:26 +00:00
nfsserver
opencrypto Fix bogus check. It was possible to panic the kernel by giving 0 length. 2005-08-18 11:58:03 +00:00
pc98 MFi386: revision 1.1204. 2005-07-21 11:13:12 +00:00
pccard
pci Use if_printf() and device_printf() for printf's and remove the unit number 2005-08-31 18:03:18 +00:00
posix4
powerpc Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
rpc
security Insert a series of place-holder function pointers in mac_policy.h for 2005-08-08 16:09:33 +00:00
sparc64 Pass a value of type vm_prot_t to pmap_enter_quick() so that it determine 2005-09-03 18:20:20 +00:00
sys Add a new struct buf flag bit, B_PERSISTENT, and use it to tag 2005-09-08 06:30:05 +00:00
tools
ufs Convert the primary ACL allocator from malloc(9) to using a UMA zone instead. 2005-09-06 00:06:30 +00:00
vm Eliminate an incorrect cast. 2005-09-07 01:42:30 +00:00
Makefile