Matthew Dillon [Sat, 28 Jun 2008 01:06:40 +0000 (01:06 +0000)]
Fix a system performance issue created by ata_sort_queue(). This function
implements an elevator sort but it also allows requests to be delayed
indefinitely when other requests continually get inserted in front of them.
HAMMER's almost log-linear writing really exposes this issue.
The fix is to count how many times a request got delayed due to an insertion.
If the count exceeds 8, the new request is placed at the end of the queue and
set as the new freeze point.
Matthew Dillon [Fri, 27 Jun 2008 20:56:59 +0000 (20:56 +0000)]
HAMMER 59B/Many: Stabilization pass - fixes for large file issues
* The flusher was trying to flush whole inodes in one pass. If a large
(in the 100GB range) file is deleted or truncated this single pass could
blow out the UNDO FIFO and cause a panic.
Detect the case and only do a partial flush, then requeue the inode to
the next flush group and reflush. This continues until the file is
completely eradicated or the truncation has completed.
* In addition, the same flusher issue could exhaust the kernel's buffer
cache with unflushable dirty buffers. The same fix applies.
* The UNDO FIFO code was calculating available space based on the next
flush's start position instead of the last flush's start position,
allowing areas of the UNDO FIFO still subject to a recovery pass
(if a crash were to occur right then) to be overwritten too soon.
* The pruner and reblocker were doing insufficient UNDO FIFO space checks
and could blow out the UNDO FIFO. Fixed.
Sepherosa Ziehau [Fri, 27 Jun 2008 17:03:40 +0000 (17:03 +0000)]
Rework stop path.
Obtained-from: forcedeth
Sepherosa Ziehau [Fri, 27 Jun 2008 16:30:53 +0000 (16:30 +0000)]
- Rename NFE_RXTX_V[32]MAGIC to NFE_RXTX_DESC_V[32].
- Change NFE_RXTX_DESC_V3 from 0x2200 to 0xc02200; it is quite interesting
the thing actually worked.
- Add rxtxctl_desc in softc, which stores the desc type of rxtxctl. Set
it up during attach.
- Add power control fixes on attach and init path.
Obtained-from: forcedeth
Sascha Wildner [Fri, 27 Jun 2008 14:02:14 +0000 (14:02 +0000)]
Fix a typo so that old netgraph builds again.
Sepherosa Ziehau [Fri, 27 Jun 2008 13:47:36 +0000 (13:47 +0000)]
- Disable WOL during attach, don't mess with it during init
- NFE_WOL_MAGIC -> NFE_WOL_ENABLE
Obtained-from: forthdeth
Sepherosa Ziehau [Fri, 27 Jun 2008 13:30:56 +0000 (13:30 +0000)]
Add flag to indicate that the NIC does not have power control capability.
Model numbers from forcedeth.
Sepherosa Ziehau [Fri, 27 Jun 2008 12:49:34 +0000 (12:49 +0000)]
Add nfe(4)
Suggested-by: Chris Turner <c.turner@199technologies.org>
Michael Neumann [Fri, 27 Jun 2008 11:57:49 +0000 (11:57 +0000)]
Add man page entry for "hammer snapshot".
Sepherosa Ziehau [Fri, 27 Jun 2008 10:55:23 +0000 (10:55 +0000)]
fxp_stop needs to be serialized
Simon Schubert [Fri, 27 Jun 2008 08:09:12 +0000 (08:09 +0000)]
Drop out of place readline function declarations.
Simon Schubert [Fri, 27 Jun 2008 08:08:25 +0000 (08:08 +0000)]
Stop building libreadline.
Libreadline has not been used for a while, only its headers.
Libedit now provides readline headers, so we can drop readline.
Simon Schubert [Fri, 27 Jun 2008 08:06:48 +0000 (08:06 +0000)]
Install libedit's readline headers.
Also install compat headers which are sometimes used.
Matthew Dillon [Fri, 27 Jun 2008 01:24:46 +0000 (01:24 +0000)]
Increase the default request timeout from 5 seconds to 10 seconds.
Using advise from Volker Theile of the FreeNAS project via:
http://wiki.freebsd.org/JeremyChadwick/ATA_issues_and_troubleshooting
Matthew Dillon [Fri, 27 Jun 2008 01:15:39 +0000 (01:15 +0000)]
dummy_thr does not have to be committed and pthread_t might not even
be a pointer on some systems.
Matthew Dillon [Fri, 27 Jun 2008 00:03:56 +0000 (00:03 +0000)]
Apply patch supplied in FreeBSD-PR to ata-raid code:
"A drive that was once part of an ataraid device, when added back to the
machine that it was on, shows up as a new ataraid device. This new ataraid
device tries to use all the drives that were originally in the RAID.
Results can range from a confusion to a real mess."
Obtained-from: http://www.freebsd.org/cgi/query-pr.cgi?pr=121899&cat=kern
Author: Stef Walter <stef@memberwebs.com>
Matthew Dillon [Thu, 26 Jun 2008 23:24:11 +0000 (23:24 +0000)]
Add files and options lines for NETGRAPH7
Matthew Dillon [Thu, 26 Jun 2008 23:06:52 +0000 (23:06 +0000)]
Add additional atomic ops from FreeBSD.
Obtained-from: FreeBSD
Matthew Dillon [Thu, 26 Jun 2008 23:05:40 +0000 (23:05 +0000)]
Netgraph port from FreeBSD - initial porting work
* Use relative #include's as appropriate so the code doesn't
dig into the original netgraph/ directory.
* Move FBSDID's and add DragonFly ids.
* Fix improper uses of M_NOWAIT.
* Fix uses of M_NOWAIT which should be MB_DONTWAIT and vise-versa
(also forward to Julian).
* Add a dragonfly.h compatibility header.
* NOTE: m_tag_alloc() in DFly takes MB_ flags.
Michael Neumann [Thu, 26 Jun 2008 20:43:45 +0000 (20:43 +0000)]
Fallback using a default snapshot name if just a directory is supplied
(e.g. hammer snapshot /mysnapshots will use /mysnapshots/snap-%Y%m%d-%H%M).
Matthew Dillon [Thu, 26 Jun 2008 19:34:33 +0000 (19:34 +0000)]
Merge from vendor branch NETGRAPH:
Vendor import of netgraph from FreeBSD-current
20080626
Matthew Dillon [Thu, 26 Jun 2008 19:34:33 +0000 (19:34 +0000)]
Vendor import of netgraph from FreeBSD-current
20080626
Matthew Dillon [Thu, 26 Jun 2008 18:54:50 +0000 (18:54 +0000)]
Add KTR_HAMMER
Matthew Dillon [Thu, 26 Jun 2008 18:53:14 +0000 (18:53 +0000)]
Make sure UFS disallows mknod()'s with type VDIR.
Michael Neumann [Thu, 26 Jun 2008 16:13:43 +0000 (16:13 +0000)]
We only need to determine the softlink_dir when no filesystem is
explicitly specified.
Michael Neumann [Thu, 26 Jun 2008 15:56:44 +0000 (15:56 +0000)]
Use strftime to produce the snapshot name, for example:
hammer snapshot "/mysnapshots/snap-%Y-%m-%dT%H:%M:%S"
Usage is now:
hammer snapshot <softlink-dir-fmt>
hammer snapshot <filesystem> <softlink-dir-fmt>
Michael Neumann [Thu, 26 Jun 2008 15:12:21 +0000 (15:12 +0000)]
Adapt usage string from cmd_prune.c.
Matthew Dillon [Thu, 26 Jun 2008 15:03:47 +0000 (15:03 +0000)]
HAMMER Utilities: Add "slave" option to hammer_mount.
* Add the "slave" mount option for hammer mounts. This option will allow
a mounted hammer filesystem to be a mirroring and pruning target but
disallow user-level modifications.
Sepherosa Ziehau [Thu, 26 Jun 2008 13:08:55 +0000 (13:08 +0000)]
Make msk(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Thu, 26 Jun 2008 12:05:19 +0000 (12:05 +0000)]
Make bfe(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Matthew Dillon [Thu, 26 Jun 2008 04:07:57 +0000 (04:07 +0000)]
HAMMER Utilities: Sync with 59A
* Add mirror-read, mirror-write, and status directives.
Matthew Dillon [Thu, 26 Jun 2008 04:06:23 +0000 (04:06 +0000)]
HAMMER 59A/Many: Mirroring related work (and one bug fix).
* BUG FIX: Fix a bug in directory hashkey generation. The iterator could
sometimes conflict with a key already on-disk and interfere with a pending
deletion. The chance of this occuring was miniscule but not 0. Now fixed.
The fix also revamps the directory iterator code, moving it all to one
place and removing it from two other places.
* PRUNING CHANGE: The pruning code no longer shifts the create_tid and
delete_tid of adjacent records to fill gaps. This means that historical
queries must either use snapshot softlinks or use a fine-grained
transaction id greater then the most recent snapshot softlink.
fine-grained historical access still works up to the first snapshot
softlink.
* Clean up the cursor code responsible for acquiring the parent node.
* Add the core mirror ioctl read/write infrastructure. This work is still
in progress.
- ioctl commands
- pseudofs enhancements, including st_dev munging.
- mount options
- transaction id and object id conflictless allocation
- initial mirror_tid recursion up the B-Tree (not finished)
- B-Tree mirror scan optimizations to skip sub-hierarchies that do not
need to be scanned (requires mirror_tid recursion to be 100% working).
Sascha Wildner [Wed, 25 Jun 2008 17:51:16 +0000 (17:51 +0000)]
Remove trailing space.
Sepherosa Ziehau [Wed, 25 Jun 2008 16:25:58 +0000 (16:25 +0000)]
Missing TX_UNK -> TX_POLL conversion
Sepherosa Ziehau [Wed, 25 Jun 2008 16:02:35 +0000 (16:02 +0000)]
TX_UNK -> TX_POLL
According-to: Linux forcedeth
Sepherosa Ziehau [Wed, 25 Jun 2008 15:50:27 +0000 (15:50 +0000)]
Add MCP73, MCP77 and MCP79 support.
Obtained-from: Linux forcedeth
Sepherosa Ziehau [Wed, 25 Jun 2008 15:33:04 +0000 (15:33 +0000)]
regen
Sepherosa Ziehau [Wed, 25 Jun 2008 15:28:59 +0000 (15:28 +0000)]
Add PCI ids for nVidia MCP77 MCP73 and MCP79 NICs
Sepherosa Ziehau [Wed, 25 Jun 2008 14:39:35 +0000 (14:39 +0000)]
MCP65 has no hardware csum offloading support.
Obtained-from: OpenBSD
Sepherosa Ziehau [Wed, 25 Jun 2008 13:36:52 +0000 (13:36 +0000)]
Make bce(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Michael Neumann [Wed, 25 Jun 2008 13:25:06 +0000 (13:25 +0000)]
Remove an else branch to flatten indentation. Also free up memory allocate
by asprintf.
Michael Neumann [Wed, 25 Jun 2008 13:10:06 +0000 (13:10 +0000)]
Implement: hammer snapshot <softlink-dir> [<filesystem>]
Sepherosa Ziehau [Wed, 25 Jun 2008 13:00:09 +0000 (13:00 +0000)]
Make bge(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 11:56:13 +0000 (11:56 +0000)]
Make fxp(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 11:46:03 +0000 (11:46 +0000)]
Make xl(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Wed, 25 Jun 2008 11:45:07 +0000 (11:45 +0000)]
On UP system, make sure that mbuf chain is not empty before accessing it.
Sepherosa Ziehau [Wed, 25 Jun 2008 11:02:33 +0000 (11:02 +0000)]
Make re(4) aware ETHER_INPUT_CHAIN and ETHER_INPUT2
YONETANI Tomokazu [Tue, 24 Jun 2008 21:55:48 +0000 (21:55 +0000)]
One more place where an inode is still printed as a 32 bit quantity.
Thomas Nikolajsen [Tue, 24 Jun 2008 21:13:26 +0000 (21:13 +0000)]
Describe flags more verbose.
Thomas Nikolajsen [Tue, 24 Jun 2008 20:22:30 +0000 (20:22 +0000)]
ports is gone: remove use of PORTSSUPFILE.
Matthew Dillon [Tue, 24 Jun 2008 17:40:24 +0000 (17:40 +0000)]
HAMMER Utilities: Sync to 58B
* Update all utilities to deal with the cleaned up ioctl structures and
to augment history and undo output with the non-monotonic timestamps.
Matthew Dillon [Tue, 24 Jun 2008 17:38:17 +0000 (17:38 +0000)]
HAMMER 58B/Many: Revamp ioctls, add non-monotonic timestamps, mirroring
* Revamp most of HAMMER's ioctl structures with an eye towards future
enhancements.
* Adjust on-media structures to include a non-monotonic creation and
deletion timestamps. Since the transaction id no longer translates
to a timestamp adding explicit timestamps allows the 'hammer history'
and 'undo' utilities to still display timestamps for the change history.
* Start working on the mirroring support ioctls.
Sepherosa Ziehau [Tue, 24 Jun 2008 13:55:17 +0000 (13:55 +0000)]
Make nfe(4) aware ETHET_INPUT_CHAIN and ETHER_INPUT2
Sepherosa Ziehau [Tue, 24 Jun 2008 13:32:27 +0000 (13:32 +0000)]
Move mbuf chain initialization into common place.
Sepherosa Ziehau [Tue, 24 Jun 2008 11:40:56 +0000 (11:40 +0000)]
Add vlan(4) support for ETHER_INPUT2. It is not built by default.
Sepherosa Ziehau [Tue, 24 Jun 2008 11:17:16 +0000 (11:17 +0000)]
VLAN_MTU works as expected on em(4)
Sascha Wildner [Tue, 24 Jun 2008 07:58:00 +0000 (07:58 +0000)]
Fix typo.
Thomas Nikolajsen [Tue, 24 Jun 2008 03:24:52 +0000 (03:24 +0000)]
Add nohistory flag.
Matthew Dillon [Tue, 24 Jun 2008 02:42:48 +0000 (02:42 +0000)]
HAMMER Utilities: Remove time/transaction-id conversion directives.
* Remove time/tid conversion directives that no longer apply.
* Clean up usage().
Matthew Dillon [Mon, 23 Jun 2008 21:42:48 +0000 (21:42 +0000)]
HAMMER 58A/Many: Mirroring support part 1
* Implement mastership domains for transaction ids to support multi-master
mirroring and implement mastership selection at mount time.
Mastership domains work by having the low 4 bits of the transaction id
specify the mastership id (0-15). This allows the mirroring code to
distinguish between changes originating on a particular node and changes
mirrored from another node.
This also ensures that filesystem objects can be created on the mirrors
in parallel without resulting in conflicitng object ids.
* Eliminate time-based TID generation. Just increment the TID as
appropriate.
NOTE: Portions of this change may be reverted at a later time depending
on how the mirroring implementation proceeds.
* Minor code cleanups.
Matthew Dillon [Mon, 23 Jun 2008 21:31:58 +0000 (21:31 +0000)]
HAMMER Utilities: Sync with 58A
* Add the master=<number> mount option, a unique id (0-15) which uniquely
identifies a master in a multi-master cluster. It will initially be
used to support multi-master mirroring.
* Rename the hammer softprune command to prune and remove the original
prune.
* Transaction ids are no longer based on the time at all. They used to
be loosely based on the time but could get knocked off by bad system
time. Now they aren't at all.
Matthew Dillon [Mon, 23 Jun 2008 17:21:58 +0000 (17:21 +0000)]
Support S_IFDIR mknod() calls for HAMMER. This is used by the Hammer
utility program to create pseudo-filesystem directories inside HAMMER.
Sepherosa Ziehau [Mon, 23 Jun 2008 14:40:12 +0000 (14:40 +0000)]
Expose ether_input_oncpu()
Sepherosa Ziehau [Mon, 23 Jun 2008 14:29:56 +0000 (14:29 +0000)]
White space
Sepherosa Ziehau [Mon, 23 Jun 2008 14:24:48 +0000 (14:24 +0000)]
Discard packets which was lingering on msgport when receiving interface
was brought down or entered monitor mode.
Sepherosa Ziehau [Mon, 23 Jun 2008 11:57:19 +0000 (11:57 +0000)]
Add ether_input_chain2() which could be called by ethernet NIC drivers to
deliver packets into upper layer. Unlike ether_input_chain(), this function
only locates the msgport for the input packets, rest of the functionalities
of ether_input_chain() are performed in the protocal threads, i.e. after
packets reaches target msgports. This function and other related functions
are put under kernel option ETHER_INPUT2, which is _not_ enabled by default.
As of this commit, vlan(4) and ipflow don't work with ether_input_chain2().
em(4) is adapted to aware ETHER_INPUT2.
Reviewed-by: dillon@, aggelos@ (early version)
# Additional comments are added to the the reviewed patch.
Matthew Dillon [Mon, 23 Jun 2008 07:37:54 +0000 (07:37 +0000)]
HAMMER Utilities: Add the 'pseudofs' directive for commit 57
* The pseudofs directive may be used to create pseudo-filesystems within
a HAMMER filesystem. Each such filesystem maintains its own inode
numbering space and can be used as a replication target. Up to 65535
pseudo-filesystems are supported.
Matthew Dillon [Mon, 23 Jun 2008 07:31:14 +0000 (07:31 +0000)]
HAMMER 57/Many: Pseudofs support
* Finish up implementation of the localization field which is used to
split the B-Tree up into domains. Use the upper 16 bits as a
pseudo filesytem selector.
* Code hammer_vop_mknod() to be able to create pseudo-filesystems.
Sascha Wildner [Mon, 23 Jun 2008 06:56:25 +0000 (06:56 +0000)]
s/Fx/Dx/
Sascha Wildner [Mon, 23 Jun 2008 06:22:15 +0000 (06:22 +0000)]
Use standard section name: ACKNOWLEDGEMENTS -> AUTHORS
Sascha Wildner [Sun, 22 Jun 2008 21:26:09 +0000 (21:26 +0000)]
Fix typo: Phenix -> Phoenix
Sascha Wildner [Sun, 22 Jun 2008 20:57:39 +0000 (20:57 +0000)]
Add an isa(4) manual page.
Derived-from: OpenBSD
Sascha Wildner [Sun, 22 Jun 2008 20:39:40 +0000 (20:39 +0000)]
Update cvs id.
Sascha Wildner [Sun, 22 Jun 2008 20:34:46 +0000 (20:34 +0000)]
Sync with FreeBSD.
Sascha Wildner [Sun, 22 Jun 2008 20:00:23 +0000 (20:00 +0000)]
Add a pnpbios(4) manpage.
Taken-from: FreeBSD
Sascha Wildner [Sun, 22 Jun 2008 19:33:55 +0000 (19:33 +0000)]
s/Fx/Dx/
Sascha Wildner [Sun, 22 Jun 2008 16:14:44 +0000 (16:14 +0000)]
Sort alphabetically.
Sascha Wildner [Sun, 22 Jun 2008 11:11:09 +0000 (11:11 +0000)]
Mention aggelos' lwn.net article.
Matthew Dillon [Sat, 21 Jun 2008 20:21:58 +0000 (20:21 +0000)]
HAMMER 56F/Many: Stabilization pass
* When data is reblocked any related direct-io offsets cached in front-end
buffer cache buffers must be cleaned out. This also requires running
through any snapshotted inodes referencing the same object.
* The flusher must check that the cached B-Tree node has not been flagged
as deleted (HAMMER_NODE_DELETED) before seeking to it.
* hammer_io_direct_read() now requires and asserts that the second-level
cached offset in the BIO is a zone-2 offset.
* hammer_io_direct_write() no longer overwrites the second-level cached
offset with the third level raw disk offset. It pushes a third level
to set the raw disk offset.
* When creating a directory entry, set the localization field for pseudo-fs
support (which isn't quite working yet anyway so no biggy).
* Move the Red-Black tree generator for inodes from hammer_ondisk.c to
hammer_inode.c.
Sascha Wildner [Sat, 21 Jun 2008 20:05:04 +0000 (20:05 +0000)]
Silence -Wold-style-definition.
Sascha Wildner [Sat, 21 Jun 2008 20:01:14 +0000 (20:01 +0000)]
Silence -Wold-style-definition.
Sascha Wildner [Sat, 21 Jun 2008 19:32:14 +0000 (19:32 +0000)]
Fix -Wold-style-definition warnings in the scanner skeleton.
Sascha Wildner [Sat, 21 Jun 2008 19:29:21 +0000 (19:29 +0000)]
Ansify
Sascha Wildner [Sat, 21 Jun 2008 17:15:57 +0000 (17:15 +0000)]
Fix paths.
Sascha Wildner [Sat, 21 Jun 2008 17:08:20 +0000 (17:08 +0000)]
Update FILES section.
Sascha Wildner [Sat, 21 Jun 2008 16:05:06 +0000 (16:05 +0000)]
Fix path in comment.
Aggelos Economopoulos [Sat, 21 Jun 2008 12:30:19 +0000 (12:30 +0000)]
More copy{in,out} removal for ctloutput routines
Sepherosa Ziehau [Sat, 21 Jun 2008 06:47:29 +0000 (06:47 +0000)]
Since either hardware or ether input code will strip packet's vlan tag,
before the packet could reach ether level ipfw filtering, we will have
to change the packet's ether type to VLAN, if the packet was vlan tagged,
so ipfw could see the correct packet mac-type.
Sepherosa Ziehau [Sat, 21 Jun 2008 05:55:46 +0000 (05:55 +0000)]
Use __func__, instead of hardcode the function name.
Sepherosa Ziehau [Sat, 21 Jun 2008 03:58:09 +0000 (03:58 +0000)]
White space
Sepherosa Ziehau [Sat, 21 Jun 2008 03:39:20 +0000 (03:39 +0000)]
Minor style change
Matthew Dillon [Sat, 21 Jun 2008 01:24:12 +0000 (01:24 +0000)]
HAMMER 56E/Many: Correct bug in 56D
* Fix a bug related to fsync that could result in an infinite loop.
Matthew Dillon [Fri, 20 Jun 2008 21:24:53 +0000 (21:24 +0000)]
HAMMER 56D/Many: Media structure finalization, atime/mtime, etc.
* Move the atime and mtime fields to the end of struct hammer_inode_data.
CRCs on hammer_inode_data no longer include atime or mtime, allowing
them to be updated without having to update the related B-Tree node.
* Change the time format for ctime, atime, and mtime. These 64 bit fields
now store microseconds in real time instead of transaction ids.
* atime is now updated asynchronously, and mtime is now updated with
UNDO records only. Split the ITIMES flag into ATIME and MTIME and
no longer set the DDIRTY (inode_data generally dirty) flag when the
mtime changes.
* Finish on-media structural components for pseudo-fs support inside a
HAMMER filesystem.
* Finish on-media structural components for adding a serial number to
the B-Tree element structures, for mirroring support.
* Make fsync() wait for the flush to complete, issue extra flushes as
needed to take the UNDO FIFO's start position past the fsync'd data
so a crash does not undo it.
Matthew Dillon [Fri, 20 Jun 2008 21:18:11 +0000 (21:18 +0000)]
HAMMER Utilities: Sync with 56D
* Time fields moved and format changed to disassociate them from transaction
ids.
Aggelos Economopoulos [Fri, 20 Jun 2008 20:58:37 +0000 (20:58 +0000)]
Don't do copy{in,out} in ctloutput any more
Aggelos Economopoulos [Fri, 20 Jun 2008 20:52:29 +0000 (20:52 +0000)]
Update bluetooth ctloutput functions not to use copy{in,out}
Matthew Dillon [Fri, 20 Jun 2008 05:40:04 +0000 (05:40 +0000)]
Fix a bug in cluster_read(). An error returned by the call to
VOP_BMAP() in the late read-ahead code is unrelated to the success
of the call and should be ignored.
Matthew Dillon [Fri, 20 Jun 2008 05:38:26 +0000 (05:38 +0000)]
HAMMER 56C/Many: Performance tuning - MEDIA STRUCTURES CHANGED!
* Implement variable block sizes. Records at offsets < 1MB use 16K buffers
while records at offsets >= 1MB use 64K buffers. This improves performance
primarily by reducing the number of B-Tree elements we have to stuff.
* Mess around with the deadlock handling code a bit. It still needs
a re-think but it works. Implement low-priority shared locks.
A low priority shared lock can only be acquired if no other locks are
held by the thread.
* Implement slow-down code for the record backlog to the flusher and
reimplement the slow-down code that deals with reclaimed inodes queued
to the flusher. This should hopefully fix the kernel memory exhaustion
issues for M_HAMMER.
* Update layer2->append_off. It isn't implemented yet but doing this now
will prevent media incompatibilities later on when it does get implemented.
* Split hammer_blockmap_free() into hammer_blockmap_free() and
hammer_blockmap_finalize().
* Fix a bug in the delayed-CRC handling related to reblocking. When
throwing away a modified buffer, pending CRC requests must also be
thrown away.
* Fix a bug in the record overlap compare code. If we cannot return 0
due to an overlap because the record has been deleted, we must still
return an appropriate formal code so the scan progresses in the
correct direction down the red-black tree.
* Make data in the meta-data zone a meta-data buffer structure type so
it gets synced to disk at the appropriate time. This may be temporary,
it's needed to deal with the atime/mtime code but another commit may
soon make it moot.
* Bump the seqcount so cluster_read() does the right thing when reading
into a large UIO just after opening a file.
* Do a better job calculating vap->va_bytes. It's still fake, but its a
more accurate fake.
* Fix an issue in the BMAP code related to ranges that do not cover the
requested logical offset.
* Fix a bug in the blockmap code. If a reservation is released without
finalizing any allocations within that big-block, another zone can steal
it out from under the current zone's next_offset, resulting in a zone
mismatch panic.
YONETANI Tomokazu [Fri, 20 Jun 2008 01:23:27 +0000 (01:23 +0000)]
Prototype declarations don't have an initializer.
Matthew Dillon [Thu, 19 Jun 2008 23:30:30 +0000 (23:30 +0000)]
HAMMER Utilities: Bug fixes
* The initial layer1->blocks_free was not properly accounting for
allocations made during newfs_hammer.