updating HFS for 5.2R [patch]

Zack Hobson zgh at malfunktion.net
Wed Jan 14 03:35:56 PST 2004

Hi all,

I'm interested in getting the recently-ported HFS code (thanks Yar!)
working in 5.2-RELEASE. I downloaded version 03 of Yar's HFS code and
was disappointed to learn that it no longer compiles on FreeBSD 5.2.
After some digging through a source cross-reference service, I managed
to figure out some of the API changes (I think), and found workarounds
for the rest, enough to get it to compile at least.

So far what I've done is this, I hope current fs hackers understand what
I'm talking about, because I don't. ^_^

 * the B_LOCKED flag is no longer supported, but I don't know enough
about the fs code to figure out what to replace it with. I simply
defined B_LOCKED with the original value, as a workaround.
 * I replaced calls to mtx_lock/mtx_unlock on the mntvnode_mtx global to
MNT_ILOCK/MNT_IUNLOCK calls on the local mount point mutex (mp or mountp
in the code).
 * There was at least one call to vrecycle that used the obsolete global
mntvnode_mtx, by looking at code elsewhere I guessed that it's okay
(correct?) to pass NULL instead.

With these changes, the code compiles. I can install and load the
resulting kernel module, and I can sucessfully use newfs_hfs and
fsck_hfs, but mount_hfs on the same volume always fails with an
"Input/output error".

I've enclosed a patch that includes the changes I described above, it's
based on the hfs-freebsd-03 source distribution:

I hope that someone with experience in these matters might be willing to
help. I'm an adequate C programmer, and I'm highly motivated to help
with this, but my knowledge of the FreeBSD kernel and vfs are nil. I've
already bugged Yar briefly and he's too busy with school to hack on this
at the moment.

Thanks and regards,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: hfs-freebsd-03_52R.diff
Type: text/x-patch
Size: 4269 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20040114/26147f0a/hfs-freebsd-03_52R.bin

More information about the freebsd-fs mailing list