Peter Avalos [Thu, 20 Mar 2008 02:02:11 +0000 (02:02 +0000)]
Merge from vendor branch BZIP:
Import bzip-1.0.5 which fixes CVE-2008-1372.
Peter Avalos [Thu, 20 Mar 2008 02:02:11 +0000 (02:02 +0000)]
Import bzip-1.0.5 which fixes CVE-2008-1372.
Matthew Dillon [Wed, 19 Mar 2008 20:49:46 +0000 (20:49 +0000)]
HAMMER 33B/many: Further B-Tree fix.
* The last commit didn't get all the cases. This one should.
Matthew Dillon [Wed, 19 Mar 2008 20:18:17 +0000 (20:18 +0000)]
HAMMER 33/many: Expand transaction processing, fix bug in B-Tree
* Expand transaction processing to cover more of the code space for
upcoming undo code.
* Fix a bug in the btree_split_leaf(), the separator would sometimes not
properly be to the left of the split point, resulting in a panic.
Temporarily add many more assertions to btree_split_leaf().
* Improve the critical path for blockmap lookups, the (newly) passed trans
already contains a referenced root volume so the blockmap code does not
have to acquire one.
Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx> (B-Tree bug)
Sepherosa Ziehau [Wed, 19 Mar 2008 14:46:03 +0000 (14:46 +0000)]
Tiny step to keep ether header in mbuf on ethernet input path:
- ng_ether_input_p does not need interface to release its serializer.
- Instead of letting ng_ether_input_p glue back ether header, we simply
pass mbuf with ether header to it. Change ng_ether_input_p interface
accordingly.
Sepherosa Ziehau [Wed, 19 Mar 2008 13:20:48 +0000 (13:20 +0000)]
- Factor out ether_restore_header() from ether_ipfw_chk() and
ether_output_frame()
- Add statistics to count number of ether header restoration and number of
ether header restoration which needs mbuf prepending
Matthew Dillon [Tue, 18 Mar 2008 20:20:26 +0000 (20:20 +0000)]
HAMMER 32B/many: Reblocking work.
* Fix a bug in the record reblocking code. data_offset's representing
data embedded in the record itself must be shifted when the record
is shifted.
Sepherosa Ziehau [Tue, 18 Mar 2008 14:12:45 +0000 (14:12 +0000)]
Nuke stack variable which is only used by INVARIANTS
Reminded-by: swildner@
Hasso Tepper [Tue, 18 Mar 2008 13:41:42 +0000 (13:41 +0000)]
Sync Bluetooth stack with NetBSD.
Obtained-from: NetBSD via OpenBSD
Sascha Wildner [Tue, 18 Mar 2008 12:28:53 +0000 (12:28 +0000)]
Remove unneeded argument.
Hasso Tepper [Tue, 18 Mar 2008 08:29:16 +0000 (08:29 +0000)]
Protect macros with "do { } while(0)" where needed.
Matthew Dillon [Tue, 18 Mar 2008 05:21:55 +0000 (05:21 +0000)]
HAMMER utilities: Add the reblock command, adjust newfs_hammer.
* Implement 'hammer reblock'. This calls the reblock ioctl to force
a HAMMER filesystem to scan its B-Tree and reblock partially empty
big blocks.
* newfs_hammer must create the undo FIFO blockmap.
Matthew Dillon [Tue, 18 Mar 2008 05:19:16 +0000 (05:19 +0000)]
HAMMER 32/many: Record holes, initial undo API, initial reblocking code
* Add code to record recent 'holes' created by the blockmap allocator
due to the requirement that data blocks not cross a 16K hammer buffer
boundary, in order to try to fill in the gaps with smaller chunks of data
when possible.
Currently a hole is not added for blockmap frees. It is questionable
whether it is a good idea to do it for frees or not, because it can
interfere with the reblock code's attempt to completely free a big block.
* Add a reblocking ioctl which scans the B-Tree and reblocks leaf nodes,
records, and data in partially empty big blocks to try to free up
the entire big block. Incomplete (needs to reblock internal B-Tree nodes
and doesn't yet, needs a low-free-space mode which focuses on freeing
a single large block).
* Add the API infrastructure required to implement the undo records,
and implement the initial undo code (sans ordering requirements for
writes). Incomplete.
Matthias Schmidt [Mon, 17 Mar 2008 10:06:22 +0000 (10:06 +0000)]
Mention recent added ioctls in bpf man page.
Reminded-by: swildner@
Sascha Wildner [Sun, 16 Mar 2008 17:44:24 +0000 (17:44 +0000)]
xref nfe(4) <-> vlan(4) (MCP55 supports hw vlan tagging)
Sascha Wildner [Sun, 16 Mar 2008 17:29:51 +0000 (17:29 +0000)]
Add a bus_space(9) manual page.
Taken-from: FreeBSD (with minor modification)
Hasso Tepper [Sun, 16 Mar 2008 15:54:31 +0000 (15:54 +0000)]
Regenerate miidevs.h.
Hasso Tepper [Sun, 16 Mar 2008 15:50:22 +0000 (15:50 +0000)]
10Base-TX -> 10Base-T and 1000Base-TX -> 1000Base-T. Although 1000Base-TX
standard itself even exists, there is no commercial products AFAIK.
Sepherosa Ziehau [Sun, 16 Mar 2008 15:30:20 +0000 (15:30 +0000)]
Rework vlan configuration processing:
- vlan config, unconfig and multicast filter programming is now serialized
by netisr0, so that no one could sneak in when a vlan interface's
serializer is released during configuration.
- vlan's serializer is released before reprogramming parent interface's
multicast filter to avoid possible dead lock.
- Factor out vlan_clrmulti() from vlan_unconfig() and vlan_setmulti().
- Register vlan module for the ifnet_detach_event
- Create per-cpu vlan trunk on parent interface. Creating and destroying
of these trunks is serialized by netisr0. Add a "staw man" vlan trunk
implementation using linked list. (*)
- Turn on vlan's IFF_RUNNING only if we are asked to do so.
- White space and minor style changes.
# (*) is not used on input path yet
Sepherosa Ziehau [Sun, 16 Mar 2008 15:22:45 +0000 (15:22 +0000)]
Add ASSERT_NOT_SERIALIZED
Sascha Wildner [Sun, 16 Mar 2008 11:10:48 +0000 (11:10 +0000)]
Add some lines on how to MFC to specific branches.
Suggested-by: aggelos
Aggelos Economopoulos [Sat, 15 Mar 2008 16:21:30 +0000 (16:21 +0000)]
The i386/amd64 abi specifies that the direction flag must be clear
on function entry. Newer versions of gcc (>=4.3) depend on this
behavior (and reportedly so does icc), so make sure the flag is
clear when running a signal handler.
Hasso Tepper [Sat, 15 Mar 2008 10:13:37 +0000 (10:13 +0000)]
Make sure lo0 is brought up before any other interfaces to avoid problems
if network startup script is interrupted by user.
Matthias Schmidt [Fri, 14 Mar 2008 09:52:10 +0000 (09:52 +0000)]
Introduce two new ioctl(2) commands, BIOCLOCK and BIOCSETWF. These commands
enhance the security of bpf(4) by further relinquishing the privilege of
the bpf(4) consumer (assuming the ioctl commands are being implemented).
This change is needed to properly support some programs from OpenBSD, such
as pflogd and dhclient.
Reviewed-by: sephe@
Obtained-from: OpenBSD via FreeBSD
Sascha Wildner [Thu, 13 Mar 2008 22:10:20 +0000 (22:10 +0000)]
Nuke unneded include.
Submitted-by: Robert Gauthier <321.robert@gmail.com>
Dave Hayes [Wed, 12 Mar 2008 22:15:56 +0000 (22:15 +0000)]
Merge from vendor branch BSDINSTALLER:
Installer import into contrib (real import this time)
Dave Hayes [Wed, 12 Mar 2008 22:15:56 +0000 (22:15 +0000)]
Installer import into contrib (real import this time)
Sascha Wildner [Wed, 12 Mar 2008 18:25:12 +0000 (18:25 +0000)]
Add some substitutions to groff/Makefile.inc and fix pdfroff's Makefile
so that it's actually run through sed.
This makes pdfroff work as advertised.
Dave Hayes [Wed, 12 Mar 2008 01:34:49 +0000 (01:34 +0000)]
Installer import
Hasso Tepper [Tue, 11 Mar 2008 10:53:07 +0000 (10:53 +0000)]
Fix buffer overflow in ppp command prompt parsing (OpenBSD errata 2008-009).
Obtained-from: OpenBSD
Sepherosa Ziehau [Mon, 10 Mar 2008 12:59:52 +0000 (12:59 +0000)]
Add ETHER_BPF_MTAP() which will call vlan_ether_ptap() for packets whose vlan
tagging is offloaded to NIC.
Obtained-from: FreeBSD
Hasso Tepper [Mon, 10 Mar 2008 12:01:50 +0000 (12:01 +0000)]
Remove #ifndef __cplusplus around wchar related stuff in include/wchar.h
and sys/sys/stdint.h headers. It allows to build libstdc++ with std::w*
(wstring, wint_t etc) support.
Amongst others fixes building boost libraries with g++41.
Approved-by: corecode@
Sepherosa Ziehau [Mon, 10 Mar 2008 11:44:57 +0000 (11:44 +0000)]
Factor out vlan_ether_ptap() from vlan_input_tag()
Sepherosa Ziehau [Mon, 10 Mar 2008 10:47:57 +0000 (10:47 +0000)]
- Embed ether vlan tag in mbuf packet header. Add an mbuf flag to mark that
this field is valid.
- Hide ifvlan after the above change; drivers support hardware vlan tagging
only need to check ether_vlantag in mbuf packet header.
- Convert all drivers that support hardware vlan tagging to use vlan tag field
in mbug packet header.
Obtained-from: FreeBSD
Change the vlan/parent serializer releasing/holding sequences into mbuf
dispatching. There are several reasons to do so:
- Avoid excessive vlan interface serializer releasing/holding
- Touching parent interface if_snd without holding parent's serializer is
unsafe
- vlan's parent may disappear or be changed after vlan's serializer is released
# This dispatching could be further optimized by packing all mbufs into one
# netmsg using m_nextpkt to:
# - Amortize netmsg sending cost
# - Reduce the time that parent interface spends on serializer releasing/holding
Sepherosa Ziehau [Mon, 10 Mar 2008 08:39:53 +0000 (08:39 +0000)]
Add 'volatile' qualifier
Sepherosa Ziehau [Mon, 10 Mar 2008 08:36:30 +0000 (08:36 +0000)]
Set framelen to 0; it might be used without being initialized
Sascha Wildner [Sun, 9 Mar 2008 21:09:25 +0000 (21:09 +0000)]
Better handle restarting a previously aborted build by adding a protective
umount (ignoring the exit code).
This goes into the clean target because otherwise clean would choke on
${ISOROOT}/tmp/packages being read only.
Requested-by: dillon
Sascha Wildner [Sun, 9 Mar 2008 16:06:08 +0000 (16:06 +0000)]
Move new sentence on a new line.
Sascha Wildner [Sun, 9 Mar 2008 16:05:39 +0000 (16:05 +0000)]
Forgot one.
Sascha Wildner [Sun, 9 Mar 2008 11:04:35 +0000 (11:04 +0000)]
Add an initial iwl(4) manual page.
Sascha Wildner [Sun, 9 Mar 2008 10:55:14 +0000 (10:55 +0000)]
Add iwl
Sepherosa Ziehau [Sun, 9 Mar 2008 10:46:49 +0000 (10:46 +0000)]
- Nuke no longer needed .PATH
- Rearrange SRCS a bit
Sepherosa Ziehau [Sun, 9 Mar 2008 09:56:02 +0000 (09:56 +0000)]
- Add an entry for iwl(4)
- Add iwl(4) in LINT
Sascha Wildner [Sun, 9 Mar 2008 08:09:01 +0000 (08:09 +0000)]
Slight rewording using existing ioctl names.
Sascha Wildner [Sat, 8 Mar 2008 23:22:12 +0000 (23:22 +0000)]
Clean up prototypes and staticize.
Sascha Wildner [Sat, 8 Mar 2008 22:00:03 +0000 (22:00 +0000)]
Add an example on how to create a live CD with xorg.
To build one, you can use the following commands:
% cd /usr/src/nrelease
% make PKGSRC_PKG_PATH=/pkgsrc/dir/All release gui
See release(7) for more information.
Note that you will need pkgsrc binary packages locally. In the example above,
replace /pkgsrc/dir with the path where they are kept.
The resulting ISO will be /usr/release/dfly-gui.iso.
Sascha Wildner [Sat, 8 Mar 2008 20:24:22 +0000 (20:24 +0000)]
Regenerate the pciconf(8) database from the following files:
Hart: Jan 22, 2008 (version 671)
Boemler: Mar 8, 2008
Mares: Mar 8, 2008
Sascha Wildner [Sat, 8 Mar 2008 20:17:38 +0000 (20:17 +0000)]
Add code to merge the pci.ids list from pciids.sourceforge.net/
which is maintained by Martin Mares. Entries from this list are used
if they are not in the Hart and Boemler lists.
The new -x option can be used to specify the pathname to the Mares list.
Sascha Wildner [Sat, 8 Mar 2008 11:55:59 +0000 (11:55 +0000)]
Move README to share/zoneinfo.
Sepherosa Ziehau [Sat, 8 Mar 2008 11:16:31 +0000 (11:16 +0000)]
Shut up gcc warning (if ifac is not NULL, ifa must be initialized in this case)
Noticed-by: swildner@
Sascha Wildner [Sat, 8 Mar 2008 11:16:10 +0000 (11:16 +0000)]
Sync zoneinfo database with tzdata2008a from elsie.
leapseconds: 8.4 -> 8.5
southamerica: 8.15 -> 8.18
From Arthur David Olson's comments:
* Document no leap second at the end of December 2007
* Drought-induced DST extension in Chile.
Sepherosa Ziehau [Sat, 8 Mar 2008 07:59:19 +0000 (07:59 +0000)]
Don't duplicate code of ether_ioctl()
Sepherosa Ziehau [Sat, 8 Mar 2008 07:50:49 +0000 (07:50 +0000)]
Cleanp leftover of the ifnet.if_addrhead parallelizing.
Reported-by: daily ISO building
Sepherosa Ziehau [Sat, 8 Mar 2008 06:43:52 +0000 (06:43 +0000)]
- In command RX intr, if the command number returned is 0, then hardware
will not work properly afterwards. This usually happens after the whole
box is power off and on. Reinitializing the hardware in a tight loop
several times does not work in this case. If this happens, set a callout
to reinitialize the hardware 1 seconds later.
- Stop various callouts in iwl2100_{init,stop}() before dispatching the
real work out to device thread.
- Always stop all callouts, if IFF_UP is turned off in ifnet.if_flags.
- Add a flag to mark that the device is detaching, mainly to avoid possible
stop/(re)init/restart ordering problem in device thread during detaching.
Sascha Wildner [Fri, 7 Mar 2008 20:29:24 +0000 (20:29 +0000)]
Instead of copying packages into the ISO root, use mount_null.
Sepherosa Ziehau [Fri, 7 Mar 2008 11:34:21 +0000 (11:34 +0000)]
Parallelize ifnet.if_addrhead accessing by duplicating the list itself
on each CPU, each list element points to ifaddr:
- Add SI_SUB_PRE_DRIVERS before SI_SUB_DRIVERS, so action could be taken
before drivers' initialization (mainly before NIC driver's if_attach())
- Move netisr_init() to the FIRST of SI_SUB_PRE_DRIVERS, so that
netmsg_service_port_init() could be called in earlier stage of system
initialization.
- Create one thread on each CPU to propagate changes to ifnet.if_addrhead.
Their thread ports are registered with netmsg_service_port_init() for
port syncing operation.
- Change to ifnet.if_addrhead begins in netisr0, i.e. serial of changes
to ifnet.if_addrhead are serialized by netisr0
- ifaddr's refcnt is moved to its list elements, i.e. per-CPU refcnt.
They are initialized to 1 instead of 0.
- A magic field is added to ifaddr list element to make sure that IFAREF
and IFAFREE are called on valid ifaddr list element. This field is
initialized to a magic value and is wiped out once the list element's
refcnt drops to 0
- To close the gap between testing and freeing, once the ifaddr list
element's refcnt drops to 0, ifa_portfn(0) (a thread's port on CPU0) is
poked to check whether ifaddr is referenced on other CPUs, if not, then
ifaddr is freed on ifa_portfn(0)
Reviewed-by: dillon@ (earlier version)
Peter Avalos [Fri, 7 Mar 2008 08:44:24 +0000 (08:44 +0000)]
Add SCSI READ CAPACITY support to camcontrol.
Obtained-from: FreeBSD
Dave Hayes [Fri, 7 Mar 2008 07:49:47 +0000 (07:49 +0000)]
Testing a commit per man page
Peter Avalos [Thu, 6 Mar 2008 20:07:51 +0000 (20:07 +0000)]
Advertise to CAM the ability of 790X controllers to negotiate information
unit transfers (packetized/U320 protocol) and QAS.
Obtained-from: FreeBSD
Peter Avalos [Thu, 6 Mar 2008 20:04:46 +0000 (20:04 +0000)]
Remove superfluous setting of the transport_version field of our
path inquiry response.
Obtained-from: FreeBSD
Peter Avalos [Thu, 6 Mar 2008 20:01:29 +0000 (20:01 +0000)]
Only print sense data diagnostics if debugging is enabled with the
AHD_SHOW_SENSE flag.
Obtained-from: FreeBSD
Sepherosa Ziehau [Thu, 6 Mar 2008 11:51:23 +0000 (11:51 +0000)]
Make sure stack variable is cleared.
Noticed-by: swildner@
Sascha Wildner [Wed, 5 Mar 2008 17:20:23 +0000 (17:20 +0000)]
* Add MLINK for serialize_sleep()
* Add reference to serialize_sleep(9) to serializer(9)
* Add <sys/serialize.h> to serialize_sleep(9) for lwkt_serialize
Sepherosa Ziehau [Wed, 5 Mar 2008 14:10:39 +0000 (14:10 +0000)]
Rewrite driver for Intel 2100BG:
- Add WPA/WPA2 support (host encryption/descryption)
- More stable in STA mode, e.g. 24hours netperf TCP_STREAM with CCMP pairwise
cipher suite and TKIP group cipher suite, rekey every 10 minutes.
- Starting IBSS now works
- Better 802.11 generic layer integration
- More comment about various caveats during firmware operation
Various registers' position and values are written according to Intel's Linux
driver ipw2100-1.2.2
Sepherosa Ziehau [Wed, 5 Mar 2008 13:19:23 +0000 (13:19 +0000)]
Add an entry for serialize_sleep
Reminded-by: swildner@
Sepherosa Ziehau [Wed, 5 Mar 2008 13:03:29 +0000 (13:03 +0000)]
Add serializer port backend. Implementation is mainly based on spin
port backend, but unlike spin port backend: users of this port backend
are assumed to have the port's serializer held.
Proper function name is suggested by corecode@, aggelos@, tgen@ and
dillon@
Reviewed-by: tgen@, dillon@
Sepherosa Ziehau [Wed, 5 Mar 2008 12:44:43 +0000 (12:44 +0000)]
Add serialize_sleep(), which will atomically release the serializer
currently being held and tsleep on the ident, then reacquire the
serializer upon function returning.
Proper function name is suggeested by corecode@, aggelos@, tgen@ and
dillon@
Reviewed-by: tgen@, dillon@
Simon Schubert [Wed, 5 Mar 2008 10:37:24 +0000 (10:37 +0000)]
Resurrect code mistakenly #ifdef'd out before.
Reminded-by: FreeBSD's cvs-src
Matthew Dillon [Tue, 4 Mar 2008 19:23:05 +0000 (19:23 +0000)]
Patch additional use-after-free cases.
Submitted-by: Claus Assmann
Sascha Wildner [Tue, 4 Mar 2008 18:10:44 +0000 (18:10 +0000)]
Use uintmax_t for ino_t.
Sepherosa Ziehau [Tue, 4 Mar 2008 13:48:40 +0000 (13:48 +0000)]
Add capability flag to inform 802.11 generic layer that device will do auto
channel switching during scanning, so if beacon/prrob-resp's DS parameter
indicates different channel than ic_curchan, 802.11 could adjust ic_curchan
according, instead of letting driver do the tedious and error prone beacon/
probe-resp parsing.
Matthias Schmidt [Tue, 4 Mar 2008 11:36:09 +0000 (11:36 +0000)]
Rework some bits of the networking code.
o Rename TLSINIT to NOSSL
o Rename read_remote_command to read_remote. Replace the remote read method
with code from femail.c written by Henning Brauer of OpenBSD and licensed
under a BSD license. Return the first figure of the return code and check
the appropriate values.
o Read the server greeting at first and send EHLO afterwards.
o Remove check_for_smtp_error(). It is included in read_remote().
This commit fixes some of the issues in issue953. More code to come.
Dragonfly-bug: http://bugs.dragonflybsd.org/issue953
Sascha Wildner [Mon, 3 Mar 2008 20:24:51 +0000 (20:24 +0000)]
Remove some lines warning about 'make upgrade' before 'make installworld'.
The upgrade mechanism now ensures that installworld has run.
Sascha Wildner [Mon, 3 Mar 2008 19:55:29 +0000 (19:55 +0000)]
Remove old files in /usr/share/groff_font/devlj4.
Sascha Wildner [Sun, 2 Mar 2008 23:02:01 +0000 (23:02 +0000)]
Bring in some changes from FreeBSD:
* Add missing @PDFDOCDIR@ substitution.
* Make 'groff -Thtml ...' work by adding an image_generator keyword to
the HTML DESC file.
* Update lj4 resolution and add some font files.
* Install lj4_font(5) manual page.
And while I'm doing this, install the grohtml(1) manual page as well.
Sascha Wildner [Sun, 2 Mar 2008 19:56:53 +0000 (19:56 +0000)]
Fix some errors and reduce differences with FreeBSD.
Sascha Wildner [Sun, 2 Mar 2008 14:28:37 +0000 (14:28 +0000)]
Retire our /usr/share/misc/iso3166 file in favor of the version provided
in the tzdata distribution and adjust tzsetup(8) accordingly.
The old format had to be updated by tracking ISO3166 Maintenance Agency
Newsletters which was rather painful, and the extra fields (three letter
and three digit country codes) were skipped by tzsetup(8) anyway.
Sascha Wildner [Sat, 1 Mar 2008 23:58:00 +0000 (23:58 +0000)]
Add MLINKS for SDP_{GET,PUT}_UUID128.3
Sascha Wildner [Sat, 1 Mar 2008 22:03:13 +0000 (22:03 +0000)]
Ansify some remaining function definitions in the kernel.
Found-by: -Wold-style-definition
Nuno Antunes [Sat, 1 Mar 2008 18:49:00 +0000 (18:49 +0000)]
Make the -O option (show *only* kernel threads) imply the -T option (show
kernel threads), as it does not make much sense otherwise.
Reviewed-by: aggelos@
Sascha Wildner [Sat, 1 Mar 2008 17:54:16 +0000 (17:54 +0000)]
Use .Va for sysctls.
Matthew Dillon [Sat, 1 Mar 2008 06:21:28 +0000 (06:21 +0000)]
Clean up the token code and implement lwkt_token_is_stale(). Users of
the token code are now able to detect if the token was acquired and released
by someone else while they were blocked.
Submitted-by: Michael Neumann <mneumann@ntecs.de>
Sascha Wildner [Thu, 28 Feb 2008 18:39:20 +0000 (18:39 +0000)]
Add an experimental driver for NICs using Silan Microelectronics' SC92301
chip, some of which seem to be known as Rsltek [sic] 8139D. This is a port
of Silan's own FreeBSD 4.7 driver which was written by one 'gaoyonghong'.
It's up to the point where it works with the "Noganet KN-8139D" product,
but it still gives occasional errors/warnings on the console. Also, some
areas need to be brought more up to date.
Therefore, the if_sln.ko module is built, but the driver is not yet in
GENERIC.
Tested-by: Damian Vicino <dvicino@dc.uba.ar>
Sascha Wildner [Thu, 28 Feb 2008 18:15:31 +0000 (18:15 +0000)]
Regenerate
Sascha Wildner [Thu, 28 Feb 2008 18:12:51 +0000 (18:12 +0000)]
Add some PCI IDs for the upcoming sln(4) driver.
Thomas E. Spanjaard [Thu, 28 Feb 2008 17:19:11 +0000 (17:19 +0000)]
Remove unmatched crit_exit() from dsp_ioctl(). A critical section was never
entered before, and it doesn't seem necessary to have one either. This
prevents a panic from happening when you operate mixer ioctls on /dev/dsp.
Sascha Wildner [Thu, 28 Feb 2008 10:51:38 +0000 (10:51 +0000)]
Sync with FreeBSD.
Thomas E. Spanjaard [Wed, 27 Feb 2008 15:20:17 +0000 (15:20 +0000)]
Fix the fact that I thought about adding a comment too when adding the v_intr
increment. I actually wrote one half of the TD_NEST_COUNT stuff instead of
putting that in the comment. D'oh!
Thomas E. Spanjaard [Mon, 25 Feb 2008 12:56:32 +0000 (12:56 +0000)]
Make sure we tally an interrupt when calling sched_ithd() from
ithread_fast_handler().
Matthew Dillon [Sun, 24 Feb 2008 23:40:24 +0000 (23:40 +0000)]
HAMMER 31C/many: Fix livelock in deadlock handling code
* The wrong B-Tree node was being recorded in cursor->deadlk_node in
one of the B-Tree subroutines. Deadlocks are handled by acquiring
and releasing the recorded conflicting node after releasing all other
locks, and then retrying. Recording the wrong node caused the
handling routine to not block waiting for the deadlock to resolve
and resulted in a livelock.
Reported-by: YONETANI Tomokazu <qhwt+dfly@les.ath.cx>
Matthew Dillon [Sun, 24 Feb 2008 20:08:50 +0000 (20:08 +0000)]
HAMMER 31B/many: Fix busy block dev on HAMMER umount
* Properly clear si_mountpoint in the block device when unmounting a
HAMMER filesystem. This fixes a busy block device problem.
Matthew Dillon [Sun, 24 Feb 2008 19:48:45 +0000 (19:48 +0000)]
HAMMER 31A/many: File data size optimization
I've been meaning to do this for a while. When writing a data record for
the last block in a file, for example for small files, there is no need
to write out the entire 16K buffer. Just write out the actual number of
bytes of data to file EOF.
This results in *EXTREME* data compaction and very high performance when
manipulating small files. The smallest possible file requires two 96 byte
records (inode record and data record), two 64 byte B-Tree elements,
a 64 byte data element (the file data), and a 128 byte data element
(the inode structure), for a grand total of 512 bytes.
Sascha Wildner [Sun, 24 Feb 2008 19:46:47 +0000 (19:46 +0000)]
Improve wording.
Sepherosa Ziehau [Sun, 24 Feb 2008 03:36:19 +0000 (03:36 +0000)]
constify channel parameter
Matthew Dillon [Sat, 23 Feb 2008 21:55:50 +0000 (21:55 +0000)]
HAMMER 30C/many: Fix more TID synchronization issues
* Properly zero-out b_tid in getnewbuf so a buffer does not get an old
stale (and possibly duplicate) b_tid.
* A b_tid assignment was missing in the truncation case, causing an assertion.
* Panic instead of warn when we find a duplicate record in the B-Tree.
Matthew Dillon [Sat, 23 Feb 2008 21:27:07 +0000 (21:27 +0000)]
HAMMER 30B/many: Minor bug fix.
* Undo some inode/data synchronization magic that could result in HAMMER
trying to write out the same data record with the same TID more then once.
This will cause historical access to not be quite in sync, and the real
solution is going to require some more involved coding in VOP_WRITE
instead of VOP_STRATEGY (which is too late).
Matthew Dillon [Sat, 23 Feb 2008 20:55:23 +0000 (20:55 +0000)]
HAMMER 30A/many: blockmap cleanup
* Implement a blockmap command in the hammer utility to dump the blockmaps.
* Fix blockmap accounting issues and a few leaks here and there.
Matthew Dillon [Sat, 23 Feb 2008 03:01:08 +0000 (03:01 +0000)]
HAMMER 30/many: blockmap work.
* Give the hammer utility the ability to decode blockmaps. 'hammer show'
can dump the B-Tree again.
* Fix a couple of bugs in newfs_hammer's initialization of the freemap.
* Implement reallocation within the freemap (poor-man's version).
* Implement reallocation within a zone (poor-man's version). Add a
sysctl vfs.hammer.zone_limit to artificially reduce the size of the
zone to force it to cycle.
Sascha Wildner [Sat, 23 Feb 2008 00:59:23 +0000 (00:59 +0000)]
Finally, re-add an #endif I removed. :)
Sascha Wildner [Sat, 23 Feb 2008 00:43:50 +0000 (00:43 +0000)]
Add <unistd.h>.