1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-25 11:37:56 +00:00
freebsd/sys
Kirk McKusick bd4bd019fb When deleting a file, the ordering of events imposed by soft updates
is to first write the deleted directory entry to disk, second write
the zero'ed inode to disk, and finally to release the freed blocks
and the inode back to the cylinder-group map. As this ordering
requires two disk writes to occur which are normally spaced about
30 seconds apart (except when memory is under duress), it takes
about a minute from the time that a file is deleted until its inode
and data blocks show up in the cylinder-group map for reallocation.
If a file has had only a brief lifetime (less than 30 seconds from
creation to deletion), neither its inode nor its directory entry
may have been written to disk. If its directory entry has not been
written to disk, then we need not wait for that directory block to
be written as the on-disk directory block does not reference the
inode. Similarly, if the allocated inode has never been written to
disk, we do not have to wait for it to be written back either as
its on-disk representation is still zero'ed out. Thus, in the case
of a short lived file, we can simply release the blocks and inode
to the cylinder-group map immediately. As the inode and its blocks
are released immediately, they are immediately available for other
uses. If they are not released for a minute, then other inodes and
blocks must be allocated for short lived files, cluttering up the
vnode and buffer caches. The previous code was a bit too aggressive
in trying to release the blocks and inode back to the cylinder-group
map resulting in their being made available when in fact the inode
on disk had not yet been zero'ed. This patch takes a more conservative
approach to doing the release which avoids doing the release prematurely.
2000-11-14 09:00:25 +00:00
..
alpha Pick up kernelname for bootinfo structure (if possible), otherwise 2000-11-14 08:12:15 +00:00
amd64 Proper capitalization of PCMCIA (and avoid matching pcm) 2000-11-14 01:13:57 +00:00
boot init booted_kernel from environment kernelname (if there) 2000-11-14 08:11:03 +00:00
cam Add special quirk for this ancient Viper drive. This is all creeping 2000-11-08 18:37:12 +00:00
coda Give vop_mmap an untimely death. The opportunity to give it a timely 2000-11-01 17:57:24 +00:00
compat Fix F_SETOWN on pipes. Linux returns EINVAL while we send a SIGIO 2000-11-13 04:08:56 +00:00
compile
conf Add ray driver for card (OLDCARD) and pccard (NEWCARD) entries. 2000-11-12 21:47:23 +00:00
contrib/dev We should include <machine/stdarg.h> not <stdarg.h> 2000-10-28 08:32:43 +00:00
crypto Initial import of AES algorithm code (aka Rijndael) from KAME. 2000-10-30 11:03:32 +00:00
ddb
dev Close PR# 21843 and PR# 21864. This adds support for WEP and updates some 2000-11-13 23:04:16 +00:00
fs Missed conversion of CIRCLEQ => TAILQ for mount list. 2000-11-14 06:38:18 +00:00
geom
gnu Quick fix for not writing group descriptor group, inode bitmaps or 2000-11-10 14:54:15 +00:00
i4b Fix i4b netgraph interface to not kernel panic at boot time 2000-11-09 12:27:31 +00:00
i386 Proper capitalization of PCMCIA (and avoid matching pcm) 2000-11-14 01:13:57 +00:00
ia64 Make MINSIGSTKSZ machine dependent, and have the sigaltstack 2000-11-09 08:25:48 +00:00
isa Ignore resources with a size of 0, as these are disabled (and we don't 2000-11-07 00:03:33 +00:00
isofs/cd9660 Weaken a bogus dependency on <sys/proc.h> in <sys/buf.h> by #ifdef'ing 2000-10-29 14:54:55 +00:00
kern Fixed a certain panic on IO error in sendfile(): Page must be set PG_BUSY 2000-11-12 14:51:15 +00:00
libkern Fix compilation of profiled kernels by including <machine/lock.h> 2000-10-14 08:34:27 +00:00
miscfs More paranoia against overflows 2000-11-08 21:53:05 +00:00
modules The vortex driver can be compiled as a KLD now. The EISA attachment 2000-11-07 01:03:23 +00:00
msdosfs Weaken a bogus dependency on <sys/proc.h> in <sys/buf.h> by #ifdef'ing 2000-10-29 14:54:55 +00:00
net Make compilable. if_fddisubr.c depended on sys/malloc.h by my 2000-11-04 14:21:23 +00:00
netatalk Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
netatm Add back some #include <sys/systm.h> which were needed when <sys/ktr.h> 2000-10-30 20:37:01 +00:00
netgraph Swap the order of two tags in the pppoe PADI and PADS packets 2000-10-31 14:40:23 +00:00
netinet While I'm here, get rid of (now useless) MCLISREFERENCED and use MEXT_IS_REF 2000-11-11 23:05:59 +00:00
netinet6 Change check from mbuf->m_ext.ext_free to use the new ext_type in order 2000-11-11 23:07:38 +00:00
netipx Move suser() and suser_xxx() prototypes and a related #define from 2000-10-29 16:06:56 +00:00
netkey Revert previous commit after discussion with phk. 2000-10-30 09:13:46 +00:00
netnatm
netncp Make malloc use M_ZERO in some more locations. 2000-10-29 16:14:28 +00:00
netns
nfs In preparation for deprecating CIRCLEQ macros in favor of TAILQ 2000-11-14 08:00:39 +00:00
nfsclient In preparation for deprecating CIRCLEQ macros in favor of TAILQ 2000-11-14 08:00:39 +00:00
nfsserver In preparation for deprecating CIRCLEQ macros in favor of TAILQ 2000-11-14 08:00:39 +00:00
ntfs Missed conversion of CIRCLEQ => TAILQ for mount list. 2000-11-14 06:38:18 +00:00
nwfs v_interlock is a mutex now, not simple lock. 2000-11-04 02:42:11 +00:00
pc98 Merged from the following changes. 2000-11-05 14:31:19 +00:00
pccard fix type check in pccard_beep_select 2000-11-01 00:37:34 +00:00
pci Change MEXTADD usage to pass the two new arguments. 2000-11-11 23:08:22 +00:00
posix4
powerpc Beginnings of the powerpc machine dependant includes. 2000-11-10 08:06:50 +00:00
rpc
sys Change the ext_type type from short to int, since it doesn't cost us 2000-11-13 02:59:57 +00:00
tools
ufs When deleting a file, the ordering of events imposed by soft updates 2000-11-14 09:00:25 +00:00
vm Clear the MAP_ENTRY_USER_WIRED flag from cloned vm_map entries. 2000-11-02 21:38:18 +00:00
Makefile