[2.6 patch] remove two obsolete HFS docs

From: Adrian Bunk (bunk_at_fs.tum.de)
Date: 01/18/04

  • Next message: Zwane Mwaikambo: "RE: [PATCH] 2.6.1-mm2: Get irq_vector size right for generic subarch UP installer kernels"
    Date:	Sun, 18 Jan 2004 20:01:48 +0100
    To: oliver@neukum.org, hargrove@sccm.Stanford.EDU
    
    

    I can't judge about the other docs under fs/hfs/ , but the INSTALL.txt
    and Changelog there are definitely too outdated to be useful for anyone.
    The patch below removes them.

    diffstat output:

     fs/hfs/ChangeLog | 2506 ---------------------------------------------
     fs/hfs/INSTALL.txt | 124 --
     2 files changed, 2630 deletions(-)

    Please apply
    Adrian

    --- linux-2.6.1-mm4/fs/hfs/INSTALL.txt 2004-01-09 07:59:27.000000000 +0100
    +++ /dev/null 2003-12-19 23:47:26.000000000 +0100
    @@ -1,124 +0,0 @@
    - Installation instructions for the HFS Filesystem for Linux
    - Paul H. Hargrove, hargrove@sccm.Stanford.EDU
    - version 0.95 28 Apr 1997
    -
    - This document explains how to compile and install version 0.95 of
    - hfs_fs, the HFS filesystem for Linux.
    -
    - 11.. SSyysstteemm RReeqquuiirreemmeennttss
    -
    - You will need the following to compile and use this release of hfs_fs:
    -
    - +o Kernel version 2.0.1 or newer compiled with modules enabled
    - (CONFIG_MODULES).
    -
    - +o The kernel sources (or at least the header files) available online.
    -
    - +o The module utilities package current for your kernel version and an
    - understanding of how to use it.
    -
    - 22.. IInnssttaallllaattiioonn
    -
    - This release of the HFS filesystem is not part of the official kernel
    - distribution. Therefore, it is compiled as a module and then loaded
    - into the kernel using the module utilities. Therefore, your kernel
    - must be compiled with CONFIG_MODULES enabled.
    -
    - 22..11.. CCoommppiilliinngg tthhee llooaaddaabbllee mmoodduullee
    -
    - To compile hfs.o you should only need to execute ``make'' in the
    - hfs_fs source directory.
    -
    - If gcc complains about not finding a large number of header files with
    - names beginning with ``linux/'' then you probably don't have the
    - kernel header files installed correctly. Either /usr/include/linux,
    - /usr/include/asm and /usr/include/scsi should be symbolic links to
    - include/linux, include/asm and include/scsi in the kernel source tree
    - for the kernel you wish to use hfs_fs with, or else they should be
    - directories containing the header files for the kernel you wish to use
    - hfs_fs with.
    -
    - If gcc complains about not finding linux/version.h, then you will need
    - to run ``make dep'' in the kernel source directory to build it. Under
    - MkLinux, run ``make include/linux/version.h'' instead.
    -
    - If gcc complains about not finding the files linux/config.h or
    - linux/autoconf.h, then you will need to run ``make config'' and ``make
    - dep'' in the kernel source directory to build these two files.
    -
    - If you are compiling on a DEC Alpha and receive messages saying
    - assignment from incompatible pointer type when compiling files dir_*.c
    - and file_*.c, then you need to change a single line in the file
    - linux/hfs_fs.h. Remove the text ``&& !defined(__alpha__)'' from the
    - end of line 217.
    -
    - 22..22.. IInnssttaalllliinngg tthhee mmoodduullee iinn tthhee mmoodduulleess ddiirreeccttoorryy ((ooppttiioonnaall))
    -
    - If you plan to use kerneld to automatically load the module or if you
    - wish to use modprobe or insmod without supplying a complete path to
    - hfs.o, then you will need to copy hfs.o into a directory where the
    - module utilities expect to find it.
    -
    - The proper directory may depend slightly on your configuration.
    - However, /lib/modules/default/fs/ is a common one for filesystem
    - modules. Once hfs.o is in the proper directory you should run depmod
    - -a to update the dependency list used by kerneld and modprobe.
    -
    - 22..33.. LLooaaddiinngg tthhee mmoodduullee iinnttoo tthhee rruunnnniinngg kkeerrnneell
    -
    - There are three ways to accomplish this:
    -
    - 1. If you are running kerneld and have installed hfs.o in the modules
    - directory then you don't need to issue any commands; the module
    - will be loaded when you attempt to mount an HFS filesystem.
    -
    - 2. If you are _n_o_t running kerneld then you can load hfs.o manually by
    - running modprobe hfs.o. If you have not installed hfs.o in one of
    - the standard module directories, then you will need provide a full
    - path to the file hfs.o.
    -
    - 3. If you have been experiencing kernel crashes with hfs_fs, then you
    - should file a bug report including the names of the functions which
    - the EIP and Stack Trace point into. To help with this you can ask
    - for relocation map for the module when you load it. To do this
    - load the module with ``insmod -m hfs.o >loadmap''. Again, you may
    - need a full path to the file hfs.o if you have not placed it in one
    - of the standard module directories.
    -
    - 22..44.. UUssiinngg tthhee mmoodduullee wwiitthh vveerrssiioonneedd ssyymmbboollss
    -
    - All the interface between the module and the kernel take place through
    - very stable (since the mid-1.3.x kernels) parts of the kernel. If you
    - enabled versioned symbols (CONFIG_MODVERSIONS) when you compiled your
    - kernel you should often be able to compile this module once and then
    - use it with many kernels newer than the one you compiled it for.
    -
    - In any case, it is unlikely that this module will need changes with
    - each new kernel patch; simple recompilation should usually suffice.
    -
    - 33.. LLeeggaall NNoottiicceess
    -
    - 33..11.. TThhiiss DDooccuummeenntt
    -
    - This document is Copyright (c) 1996, 1997 by Paul H. Hargrove.
    -
    - Permission is granted to make and distribute verbatim copies of this
    - document provided the copyright notice and this permission notice are
    - preserved on all copies.
    -
    - Permission is granted to copy and distribute modified versions of this
    - document under the conditions for verbatim copies above, provided a
    - notice clearly stating that the document is a modified version is also
    - included in the modified document.
    -
    - Permission is granted to copy and distribute translations of this
    - document into another language, under the conditions specified above
    - for modified versions.
    -
    - Permission is granted to convert this document into another media
    - under the conditions specified above for modified versions provided
    - the requirement to acknowledge the source document is fulfilled by
    - inclusion of an obvious reference to the source document in the new
    - media. Where there is any doubt as to what defines ``obvious'' the
    - copyright owner reserves the right to decide.
    -
    --- linux-2.6.1-mm4/fs/hfs/ChangeLog 2004-01-09 08:00:02.000000000 +0100
    +++ /dev/null 2003-12-19 23:47:26.000000000 +0100
    @@ -1,2506 +0,0 @@
    -2000-01-02 a sun <asun@asun.cobalt.com>
    -
    - * file.c (hfs_get_block): added hfs_get_block for regular files.
    -
    -1999-04-12 a sun <asun@hecate.darksunrising.blah>
    -
    - * file_hdr.c (hdr_read): added rootinfo behaviour for DID header.
    -
    -1999-04-11 a sun <asun@hecate.darksunrising.blah>
    -
    - * super.c (parse_options): added s_version so that we can select
    - between different versions of the same layout.
    -
    -1999-04-05 a sun <asun@hecate.darksunrising.blah>
    -
    - * linux/hfs_fs.h: unified netatalk and appledouble header format.
    - added in all of the AFP attribute bits.
    -
    - * file_hdr.c: added netatalk appledouble v2 compatible headers.
    -
    -1999-01-30 a sun <asun@hecate.darksunrising.blah>
    -
    - * catalog.c (hfs_cat_move): fixed corruption problem with
    - renames.
    -
    -1999-01-27 a sun <asun@hecate.darksunrising.blah>
    -
    - * file_hdr.c (get/set_dates): got rid of broken afpd times. NOTE:
    - you must use netatalk-1.4b2+asun2.1.2 or newer for this.
    -
    -1998-12-20 a sun <asun@hecate.darksunrising.blah>
    -
    - * bdelete.c (del_root): assign bthLNode and bthFNode only if the
    - root node becomes a leaf node. Disk First Aid no longer
    - complains. Norton Utilities, of course, has decided that it
    - doesn't like the root node number. bleah. i think that it might be
    - due to Norton Utilities not expecting the root node to have moved.
    -
    -1998-12-16 a sun <asun@hecate.darksunrising.blah>
    -
    - * sysdep.c (hfs_revalidate_dentry): fix inode dates when there's a
    - timezone change.
    -
    -1998-12-15 root <root@hecate.darksunrising.blah>
    -
    - * extent.c (new_extent): expand block size variables to handle
    - u32.
    -
    - * mdb.c (hfs_mdb_get): AlBlkSiz shouldn't be capped at 65535. we
    - should be able to handle much larger volumes now.
    -
    -1998-11-21 a sun <asun@hecate.darksunrising.blah>
    -
    - * hfs_sysdep.h, hfs_fs.h: added hfs_from_utc/to_utc to deal with
    - date differences on hfs formatted media.
    -
    - NOTE: hfs extended keeps everything in utc, so we'll need to deal
    - with that when appropriate.
    -
    -1998-11-12 a sun <asun@hecate.darksunrising.blah>
    -
    - * extent.c (shrink_fork): added some lock_bitmap/unlock_bitmap's
    - to protect hfs_clear_vbm_bits. we should no longer have problems
    - with free_ablocks wrapping around.
    -
    -1998-11-02 a sun <asun@hecate.darksunrising.blah>
    -
    - * mdb.c (hfs_mdb_get): plugged up an mdb failed initialization
    - leak.
    -
    -1998-10-31 a sun <asun@hecate.darksunrising.blah>
    -
    - * version.c (hfs_version): bumped to version 0.96.
    -
    - * mdb.c (hfs_mdb_commit): you only write out the alternate MDB
    - when the catalog or extents overflow files grow. that just leaves
    - the btree corruption problems. bleah (whilst deleting a bunch of
    - files, more of the btree can get pruned away than desired).
    -
    -1998-10-30 a sun <asun@hecate.darksunrising.blah>
    -
    - * dir.c: fixed a bunch of silliness with deletions. make sure to
    - zero out stuff and set mark_inode_dirty().
    -
    -1998-10-29 a sun <asun@hecate.darksunrising.blah>
    -
    - * string.c (hfs_strcmp, hfs_streq, hfs_strhash): converted them to
    - take name/len arguments instead of hfs_name to reduce copying.
    -
    - * dir.c, dir_nat.c, dir_cap.c, dir_dbl.c, sysdep.c: modified
    - relevant areas to reflect string.c changes.
    -
    -1998-10-28 a sun <asun@hecate.darksunrising.blah>
    -
    - * hfs.h (hfs_lookup_dentry): oh my. more silliness. make sure to
    - have the d_lookup use the same hash value as the one generated by
    - hfs_hash_dentry. i also changed the argument order.
    - (hfs_drop_special): change the argument order to be more in line
    - with what the dcache stuff looks like.
    -
    - * sysdep.c (hfs_compare_dentry): the compare was returning the
    - wrong value for correct matches and causing all sorts of
    - mischief. this fixes both directory counts and mounting on top of
    - hfs volumes.
    -
    - * file.c, file_cap.c, file_hdr.c: added mark_inode_dirty()'s in
    - the relevant places.
    -
    -1998-10-11 root <asun@hecate.darksunrising.blah>
    -
    - * mdb.c (hfs_mdb_get): moved initialization of mdb->entry_dirty
    - list to here to deal with trying to read a bad hfs volume.
    -
    -1998-10-10 a sun <asun@zoology.washington.edu>
    -
    - * inode.c, catalog.c, dir_*.c, sysdep.c: parts of the dcache
    - conversion didn't get done properly. specifically, i forgot to
    - move the hfs_cat_puts into the right place. that's fixed now.
    -
    -1998-09-11 a sun <asun@purgatorius.zoology.washington.edu>
    -
    - * mdb.c: altered mdb struct to reflect hfs plus usage.
    -
    -1998-08-27 a sun <asun@purgatorius.zoology.washington.edu>
    -
    - * file.c, file_hdr.c, file_cap.c: dealt with the remaining
    - copy_to/from_user() error cases.
    -
    -1998-08-26 a sun <asun@purgatorius.zoology.washington.edu>
    -
    - * super.c (hfs_read_super): fixed to deal with cdroms. why doesn't
    - the cdrom layer call the partition table code?
    -
    -Wed Jan 21 14:04:26 1998 a sun <asun@zoology.washington.edu>
    -
    - * inode.c, sysdep.c
    - use d_iput to uncache dentry from catalog entry instead of relying
    - on put_inode. no more NULL pointer dereferences!
    -
    - * catalog.c
    - cleaned up hfs_cat_put a little.
    -
    - ISSUES (non-fatal): mv dir dir2 while creating files in dir screws
    - up directory counts.
    -
    - deletion using netatalk screws up directory
    - counts.
    -
    -Thu Jan 15 19:14:28 1998 a sun <asun@zoology.washington.edu>
    -
    - * catalog.c
    - make deletion happen when requested instead of waiting until
    - an hfs_cat_put as the dcache can hold onto entries for quite
    - some time.
    -
    -Wed Jan 14 14:43:16 1998 a sun <asun@zoology.washington.edu>
    -
    - * catalog.c
    - the current catalog allocation scheme allocates
    - PAGE_SIZE/sizeof(struct hfs_cat_entry) entries at a time and keeps
    - a pool of free entries up to this allocation unit * 8.
    -
    - * inode.c
    - make sure to always hfs_cat_put if hfs_iget is going to return
    - NULL.
    -
    - * string.c, catalog.c
    - use linux' hashing method to generate hashes. the old hashing was
    - getting collisions. catalog.c also has a larger hash table to
    - prevent collisions.
    -
    -Tue Jan 13 13:06:01 1998 a sun <asun@zoology.washington.edu>
    -
    - * version.c
    - bumped to 0.95+asun3
    -
    - * catalog.c
    - re-wrote to dynamically allocate/delete catalog entries. on a 486,
    - entries fit into the size-256 slab.
    -
    -Wed Jan 7 19:33:33 1998 a sun <asun@zoology.washington.edu>
    -
    - * inode.c
    - don't hfs_cat_put gratuitously in hfs_iget. that's a bad
    - idea and results in screwed up entry counts.
    -
    -Tue Jan 6 14:38:24 1998 a sun <asun@zoology.washington.edu>
    -
    - * version.c
    - changed it to 0.95+asun2
    -
    - * sysdep.c
    - altered catalog entry pruning to make sure that an iput
    - gets done. for some reason, shrink_dcache_parent wasn't
    - doing it.
    -
    - * catalog.c
    - added a global dirty list to check for pruning.
    -
    -Tue Jan 6 12:29:52 1998 a sun <asun@zoology.washington.edu>
    -
    - * catalog.c
    - re-wrote it to be similar to 2.1.x inode.c. this should
    - at least make catalog.c SMP safe.
    -
    - * hfs.h, linux/hfs_fs.h
    - moved dentry operations into hfs.h. these probably should
    - be moved somewhere else.
    -
    - * super.c, dir_cap.c, dir_nat.c, dir_dbl.c, sysdep.c
    - added dentry ops to hash everything to lowercase.
    -
    -Sun Dec 28 22:48:53 1997 a sun <asun@zoology.washington.edu>
    -
    - * sysdep.c, catalog.c, hfs.h
    - as a temporary workaround until catalog.c gets re-written,
    - i flush the dcache if we need more entries.
    -
    -Fri Dec 19 15:11:21 1997 a sun <asun@zoology.washington.edu>
    -
    - * dir_dbl.c
    - statically allocate tmp_name instead of doing it dynamically.
    -
    - NOTE: well, those pesky hfs_cat_put messages still aren't gone. in
    - addition, catalog.c needs to be modified to free up some entries
    - when the cache gets filled up.
    -
    -Sun Dec 14 11:51:11 1997 a sun <asun@zoology.washington.edu>
    -
    - * linux/hfs_fs.h
    - moved the dentry stuff into within the #ifdef __KERNEL__
    - part of hfs_fs.h and cleaned up a little.
    -
    -Sun Dec 14 11:24:54 1997 a sun <asun@zoology.washington.edu>
    -
    - * dir.c
    - changed hfs_rename to delete all old dentries. hfs_cat_put
    - messages on umount should be a thing of the past now.
    -
    -Sun Dec 14 01:12:58 1997 a sun <asun@zoology.washington.edu>
    -
    - * dir.c
    - changed mark_inodes_deleted to dget/d_delete/dput the dentry
    - instead of just dropping it. the bytes available should now
    - be updated properly upon deletion.
    -
    -Wed Dec 10 00:01:25 1997 a sun <asun@zoology.washington.edu>
    -
    - * dir.c
    - changed mark_inodes_deleted to drop the dentry instead of
    - just deleting it.
    -
    - TODO: bytes available aren't being properly updated when a
    - resource fork gets deleted.
    -
    -Mon Dec 8 23:22:40 1997 a sun <asun@zoology.washington.edu>
    -
    - * dir_cap.c, dir_nat.c, dir_dbl.c, dir.c
    - * hfs.h, linux/hfs_sysdep.h, linux/hfs_fs_i.h
    - Added code to drop ({dbl,cap,nat}_drop_dentry) invalid
    - dentries when creating or moving a file.
    -
    - * inode.c
    - Added code to delete cached dentries when a file gets deleted.
    -
    - * current yuckiness: there's an extra hfs_cat_put somewhere. it's
    - harmless but bothersome.
    -
    -Thu Dec 4 00:14:03 1997 a sun <asun@zoology.washington.edu>
    -
    - * dir.c, dir_cap.c, dir_nat.c, file.c, file_hdr.c, inode.c,
    - * linux/{hfs_sysdep.h, hfs_fs.h}, version.c:
    - Completed first code dentrification sweep. It mounts! It copies!
    - It dcaches!
    -
    -Mon Apr 28 06:58:44 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, INSTALL.sgml, HFS.sgml:
    - Bump version to 0.95 (Woohoo! We're beta!)
    -
    - * linux/hfs_fs.h:
    - Modify HFS_SB() and HFS_I() when compiled into the kernel.
    -
    - * FAQ.sgml:
    - Add a new question (and its answer):
    - Why does my Macintosh show generic application and document icons?
    -
    - * HFS.sgml:
    - Add some URLs and remove the (now empty) FAQ section.
    -
    -Sun Apr 27 22:17:01 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * HFS.sgml:
    - Don't call the version 1 headers "slightly modified".
    -
    - * file_hdr.c, dir_nat.c:
    - Comment some AFPD compatibility stuff.
    -
    - * FAQ.sgml:
    - Update for version 0.95.
    -
    - * BUG_INFO:
    - Remove the BIG_INFO script since we no longer mention it.
    -
    - * README.sgml, INSTALL.sgml, HFS.sgml, Makefile:
    - Split README.sgml into HFS.sgml and INSTALL.sgml.
    - Stop including the document sources in snapshots.
    -
    - * file_hdr.c:
    - Fix hdr_truncate() not to truncate the data fork.
    -
    -Wed Apr 16 23:56:25 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * FAQ.sgml:
    - Bump version to 0.8.4 and add two answers:
    - How to fsck an HFS filesystem.
    - How to generate linux/version.h.
    -
    - * version.c, README.sgml:
    - Bump version to 0.8.4.
    -
    - * README.sgml, FAQ.sgml, Makefile:
    - Separate the FAQ from the README.
    -
    - * linux/hfs_fs.h:
    - Add (struct hfs_fork) to the forward declarations.
    -
    -Thu Apr 10 05:47:16 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * linux/hfs_sysdep.h:
    - Work around the non-const declaration of test_bit()'s second argument.
    -
    - * Makefile:
    - Use .config from the kernel source to check for MODVERSIONS.
    -
    -Wed Apr 9 07:57:17 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bnode.c:
    - Check the record table in each bnode as we read it from disk.
    -
    - * super.c, mdb.c, hfs.h:
    - Deal with the ATTRIB_CLEAN bit of the MDB properly (in mdb.c).
    -
    - * super.c, hfs.h, mdb.c:
    - Search for the alt-MDB rather than using the device size to find it.
    -
    -Wed Apr 9 03:39:05 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version to 0.8.3.
    -
    -Mon Apr 7 20:09:56 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * part_tbl.c:
    - Fix to allow bootable CDROMs (which have blocksize != 512) to mount.
    -
    - * super.c:
    - Check that blk_size[MAJOR(dev)] is non-NULL before dereferencing.
    -
    -Sat Apr 5 10:44:42 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_btree.h, binsert.c, brec.c, bfind.c, bins_del.c, bdelete.c:
    - Make btree operations less likely to do
    - nasty things if the tree is corrupted.
    -
    - * part_tbl.c, README.sgml:
    - Count partitions from 0 rather than from 1.
    -
    -Wed Apr 2 23:26:51 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bdelete.c:
    - Don't bother checking for oversized keys in hfs_bdelete().
    -
    - * bdelete.c, bfind.c, binsert.c:
    - Verify key lengths against the maximum given for the tree.
    -
    - * Makefile:
    - Check that /usr/include/linux/modversions.h exists before including it.
    - This allows compilation without CONFIG_MODVERSIONS enabled.
    -
    -Sat Mar 29 13:17:53 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * linux/hfs_fs.h, super.c, file_hdr.c, hfs.h, extent.c, file_cap.c,
    - dir_dbl.c, dir_nat.c, dir.c, dir_cap.c, binsert.c, catalog.c,
    - bfind.c:
    - Make (struct hfs_bkey) and (struct hfs_brec) more "abstract".
    -
    - * binsert.c:
    - Remove redundant test in hfs_binsert().
    -
    -Sat Mar 29 05:24:23 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Fix formatting problems in README.sgml and bump version to 0.8.2.
    -
    - * extent.c:
    - Fix bug that caused serious headaches with fragmented files.
    -
    -Fri Mar 28 00:23:18 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version to 0.8.1.
    -
    - * btree.c, balloc.c:
    - Commit map nodes to buffers when new map nodes are added.
    -
    -Thu Mar 27 22:41:07 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * Makefile:
    - Include linux/modversions.h from the gcc command line.
    -
    - * mdb.c:
    - Was updating modified date twice in hfs_mdb_commit().
    -
    - * linux/hfs_sysdep.h, linux/hfs_fs.h, linux/hfs_fs_i.h,
    - linux/hfs_fs_sb.h, sysdep.c, trans.c, super.c, hfs_sysdep.h, inode.c,
    - hfs_fs_i.h, hfs_fs_sb.h, hfs_fs.h, hfs.h, file_cap.c, file_hdr.c,
    - file.c, dir_nat.c, dir_cap.c, dir_dbl.c, Makefile, dir.c:
    - Rearrange headers in preparation for inclusion in the kernel.
    -
    - * hfs_fs_sb.h, hfs_fs.h:
    - Add forward declarations so other code can include these headers.
    -
    - * hfs_sysdep.h:
    - Include __constant_hton[ls]() for little-endian machines.
    -
    - * hfs_fs.h, hfs_sysdep.h, hfs.h:
    - Move typedefs of hfs_{byte,word,lword}_t from hfs.h to hfs_sysdep.h.
    - Include hfs_sysdep.h from hfs_fs.h.
    -
    - * trans.c, super.c, part_tbl.c, string.c, inode.c, mdb.c, hfs_fs_sb.h,
    - hfs_sysdep.h, hfs_fs.h, hfs.h, hfs_btree.h, file_cap.c, file_hdr.c,
    - file.c, dir_nat.c, extent.c, dir_dbl.c, dir.c, dir_cap.c, catalog.c,
    - btree.c, bnode.c, brec.c, bitmap.c, bitops.c, bins_del.c, binsert.c,
    - bdelete.c, bfind.c, balloc.c:
    - Big type system changes in preparation for kernel inclusion:
    - '[US](8|16|32)' -> 'hfs_[us](8|16|32)' (avoids name space pollution)
    - 'hfs_name_t' -> 'struct hfs_name' (allows forward declaration)
    -
    - * super.c, hfs_fs.h:
    - Add init_hfs_fs() to super.c for non-module compilation.
    -
    -Wed Mar 26 07:53:59 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version to 0.8.
    -
    - * README.sgml:
    - Special compilation note for DEC Alpha.
    -
    - * README.sgml:
    - Note status on non-Intel processors.
    -
    - * hfs_fs.h:
    - Use long's for read() and write() on the Alpha.
    -
    - * README.sgml:
    - Document the afpd mount option.
    -
    - * inode.c:
    - Make files always writable for owner in afpd mode.
    -
    -Tue Mar 25 23:21:39 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * part_tbl.c:
    - Clean up the error checking code a bit.
    -
    -Sat Mar 22 19:43:40 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * part_tbl.c:
    - Fixed uninitialized variable in old-style partition code.
    -
    - * bins_del.c, bdelete.c:
    - Fix extraneous "bad argument to shift_{left,right}" messages.
    -
    - * bitops.c:
    - Note that these routines are now tested on Intel, PPC and Alpha.
    -
    - * Makefile:
    - Add -fno-builtin to the CFLAGS.
    -
    -Fri Feb 14 10:50:14 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_sysdep.h:
    - Don't include <asm/*.h> until after <linux/types.h>.
    -
    - * catalog.c:
    - Use volume create date in hashfn() rather than casting pointer to int.
    -
    - * hfs.h, mdb.c:
    - Maintaing volume create, modify and backup dates in struct hfs_mdb.
    -
    - * hfs_fs.h:
    - Include the header for put_user BEFORE using it!
    -
    - * string.c, hfs.h:
    - Make hfs_strhash() return an unsigned int.
    -
    - * trans.c, version.c, super.c, mdb.c, part_tbl.c, string.c, inode.c,
    - hfs_sysdep.h, hfs_fs.h, hfs_fs_sb.h, hfs_btree.h, hfs.h, file_cap.c,
    - file_hdr.c, extent.c, dir_dbl.c, dir_nat.c, dir_cap.c, dir.c,
    - catalog.c, btree.c, bnode.c, brec.c, bitmap.c, binsert.c,
    - bins_del.c, bdelete.c, balloc.c, README.sgml, Makefile:
    - Updated copyright notices.
    -
    - * trans.c, part_tbl.c, string.c, super.c, inode.c, mdb.c, hfs_fs.h,
    - hfs_fs_sb.h, hfs_sysdep.h, hfs_btree.h, hfs.h, file_cap.c,
    - file_hdr.c, dir_nat.c, extent.c, dir_cap.c, dir_dbl.c, catalog.c,
    - dir.c, brec.c, btree.c, bitmap.c, bnode.c, bdelete.c, bins_del.c,
    - binsert.c, Makefile, TODO, balloc.c:
    - First shot at portability to the DEC Alpha and non-gcc compilers.
    - This involved a significant overhaul of the type system.
    -
    -Tue Feb 4 04:26:54 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version to "pre-0.8-4".
    -
    - * dir_nat.c:
    - Allow creat() in Netatalk .AppleDouble directories.
    -
    - * dir_dbl.c:
    - Make local functions static.
    -
    - * dir_dbl.c:
    - Removed unnecessary 'extern' qualifiers from forward declarations.
    -
    - * file_hdr.c, TODO:
    - Fixed the 30-year time warp with afpd.
    -
    - * TODO, trans.c:
    - Don't mangle the name .AppleDesktop under fork=netatalk.
    -
    -Mon Feb 3 23:18:45 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode.c:
    - Make header files always writable when the afpd mount option is given.
    - Otherwise it is impossible to unlock a locked file.
    -
    - * TODO, inode.c:
    - Let afpd think chmod() always succeeds, so "New Folder" works right.
    -
    - * super.c:
    - The 'afpd' mount option now makes 'fork=n,names=n' the default.
    -
    - * TODO:
    - List the current known afpd-compatibility problems as bugs.
    -
    - * file_hdr.c:
    - Make certain date changes through header files get written to disk.
    -
    -Sat Feb 1 02:24:12 1997 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * mdb.c:
    - Work around for Linux rounding device sizes to 1k increments.
    -
    - * README.sgml:
    - Fixed a typo: "the a".
    -
    -Sat Dec 28 20:41:01 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * TODO:
    - Add ioctl() interface as a "missing feature."
    -
    - * dir_nat.c:
    - Finish implementing the afpd-compatibility
    - mode using the new 'afpd' mount option.
    -
    - * hfs_fs_sb.h, super.c:
    - Add new 'afpd' mount option.
    -
    - * file_cap.c:
    - Spelling fix.
    -
    -Wed Dec 11 23:16:08 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * TODO, README.sgml:
    - Optimistically document the hybrid CD problem as fixed.
    -
    - * part_tbl.c:
    - Fix the partition code so at least some of the hybrid
    - CDROMs that were previously rejected are now accepted.
    -
    - * hfs.h:
    - Make fs_start a 32-bit integer rather than 16-bits.
    - The 16-bit value would overflow if a partition started
    - beyond the 32M mark (e.g. the Executor 2 Beta 1 CDROM).
    -
    - * extent.c:
    - Fixed a typo in an error message.
    -
    -Tue Dec 10 14:43:46 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * dir_nat.c:
    - Merge in the (still dormant) afpd-compatibility changes.
    -
    - * inode.c:
    - Make the .AppleDouble directory writable (again).
    -
    - * version.c, README.sgml:
    - Bump version up to "pre-0.8-3".
    -
    - * hfs_fs.h, file_cap.c, file_hdr.c:
    - Move AFP constants to hfs_fs.h and prefix them with "HFS_".
    -
    - * dir_nat.c, inode.c:
    - Back-out changes that allowed writing to the .AppleDouble directory.
    -
    - * Makefile:
    - Update rules for linuxdoc-sgml v1.5.
    -
    - * extent.c:
    - Fixed serious bug in decode_extent() with handling of empty extents.
    -
    - * file.c:
    - Rewrote hfs_getblk().
    - It will no longer hang if hfs_extent_map() is buggy.
    - Also halves the worst-case number of calls to hfs_extent_map().
    -
    - * extent.c:
    - Fixed serious bug in decode_extent() with handling of empty extents.
    -
    - * hfs_fs.h:
    - Small change so the PPC (and maybe other architectures?)
    - pick up the prototypes for the user-space access functions.
    -
    - * super.c, file_cap.c, file_hdr.c, hfs_fs.h, file.c:
    - Updated for new user-space memory interface.
    -
    -Sun Dec 8 11:49:36 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * dir_nat.c:
    - Add special code for unlink(), and rename() in the .AppleDouble
    - directory and rmdir() of the .AppleDouble directory.
    -
    - * inode.c:
    - Make the .AppleDouble directory writable.
    -
    - * file_hdr.c:
    - Use AFP flags in version 1 headers (for Netatalk compatibility).
    -
    - * trans.c:
    - Fixed bug with long names causing kernel Oops.
    -
    -Mon Oct 7 06:05:01 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, file_cap.c, file_hdr.c, hfs.h, extent.c, file.c, dir.c:
    - Fix types for various read/write/truncate computations.
    - Also allows compilation with 2.1.x kernels.
    -
    -Thu Sep 19 10:28:43 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * README.sgml, version.c:
    - Bump version up to "pre-0.8-2".
    -
    - * TODO:
    - Reformat the To Do list introducing prioritized categories.
    -
    - * file_hdr.c, file.c:
    - Move comments about mmap() for headers from file.c to file_hdr.c.
    - Also revise the reasoning for not yet having it implemented.
    -
    - * dir_nat.c, dir_cap.c, dir_dbl.c:
    - Remove 'hfs_' prefix from names of some purely local functions.
    -
    - * dir_dbl.c, TODO:
    - Under AppleDouble make create(), mkdir(), mknod(), unlink(), rename()
    - and rename() check against header files when arguments start with '%'.
    -
    - * super.c, hfs_fs_sb.h, hfs_fs.h, dir_dbl.c, dir_nat.c, dir_cap.c,
    - dir.c, README.sgml:
    - Fix problem that prevented creating %RootInfo or .rootinfo in all
    - directories in addition to preventing deletion from the root directory.
    -
    - * TODO:
    - Remove writable header files from the To Do list.
    -
    - * README.sgml:
    - Add extensive discussion of writing to HFS filesystems and
    - the format of the special files.
    -
    - * file_hdr.c:
    - Generate the 'homefs' field for version 1 header files.
    -
    -Wed Sep 18 23:07:45 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, file_cap.c:
    - Comment the definition of (struct hfs_cap_info).
    -
    - * version.c, README.sgml:
    - Bump version up to "pre-0.8-1" and update the "How can I write?" FAQ.
    -
    - * file_hdr.c:
    - Implement hdr_write() and hdr_truncate()!!
    -
    - * hfs_fs_i.h, inode.c:
    - Make hdr_layout per-inode (not per-file) so hdr_truncate() will work.
    -
    - * file.c, hfs.h, catalog.c, extent.c, balloc.c:
    - hfs_extent_adj() now uses fork->lsize to determine the target file size.
    -
    -Sun Sep 15 07:55:24 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * README.sgml, trans.c:
    - Prevent creation of files & directories with '\0' or ':' in their names.
    -
    - * string.c, hfs_fs.h, hfs.h, dir_dbl.c, dir_nat.c, dir_cap.c:
    - With case=lower could have run off end of string.
    -
    -Tue Sep 10 12:05:47 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode.c:
    - Small clean up of HFS_FIL_LOCK handling.
    -
    - * inode.c:
    - Fix notify_change() not to accidentally make metadata executable.
    -
    - * hfs_fs.h:
    - AppleSingle files should have HFS_ITYPE_NORM.
    -
    - * inode.c:
    - Return to old behavior where MdDat = i_mtime.
    -
    - * dir_dbl.c:
    - Fix serious bug in hfs_dbl_readdir() that would lock-up access to a
    - directory if one tried to write to a directory they had previously read.
    -
    - * file.c:
    - Fix hfs_do_write() to adjust the fork's 'lsize' if it changed.
    -
    - * inode.c, file_cap.c:
    - Allow truncate() to be called even on metadata.
    - Any size changes will last only until the next iput() of the inode.
    - Truncating a header file doesn't yet truncate the resource fork.
    -
    - * inode.c:
    - Allow chmod() on a directory if it doesn't actually change i_mode.
    -
    - * hfs_fs.h, trans.c, super.c:
    - Rename hfs_cap2mac() to hfs_colon2mac().
    - Rename hfs_apl2mac() to hfs_prcnt2mac().
    -
    - * file_hdr.c:
    - Move header construction out of hdr_read() to create hdr_build_meta().
    -
    - * hfs.h:
    - Add byte-order independent conversions: U32->U16, U32->U8 and U16->U8.
    -
    - * file.c, file_cap.c, hfs_fs.h:
    - Rename fix_perms() to hfs_file_fix_mode() and
    - move it from file_cap.c to file.c.
    -
    - * README.sgml, super.c:
    - Make the default for the names mount option vary with the fork option.
    -
    - * file_cap.c:
    - The umask was applied incorrectly in fix_perms().
    -
    -Mon Sep 9 13:11:28 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * README.sgml:
    - Note that it compiles on m68k machines, but needs more testing.
    -
    - * hfs_sysdep.h, Makefile:
    - Changes to compile unmodified on m68k (and possibly other machines).
    -
    - * dir_cap.c:
    - hfs_cap_readdir() was mistakenly producing .rootinfo entries for
    - the .finderinfo and .resource subdirectories of the root directory.
    -
    - * inode.c:
    - A directory's i_size was too small by 1 under CAP, so hfs_cap_readdir()
    - would omit the last directory entry. i_nlink was also too large by 1.
    -
    -Sun Sep 8 12:56:06 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * file_hdr.c:
    - Rewrite hdr_read() to be more efficient and to deal correctly with
    - descriptors having lengths that differ from the actual size of the data.
    -
    - * file_cap.c:
    - Add write support for CAP finderinfo files!!
    -
    - * super.c, inode.c, hfs_fs.h, hfs_fs_i.h, hfs_fs_sb.h, file_dbl.c,
    - file_nat.c, file_hdr.c, file.c, file_cap.c, Makefile, dir.c:
    - Generate metadata (header files and CAP finderinfo files) on-the-fly.
    - The files file_{dbl,nat}.c are merged into file_hdr.c as a result.
    -
    -Sat Sep 7 08:09:24 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * README.sgml:
    - Fix silly grammatical error.
    -
    -Fri Sep 6 09:17:12 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs_sb.h, super.c:
    - No need to cast type of s_reserved.
    -
    - * file_dbl.c, file_nat.c, dir_dbl.c, dir_nat.c, file_cap.c, dir_cap.c:
    - Add the missing NULL readpage and writepage entries to the inode_ops.
    -
    - * file_dbl.c, file_nat.c, file.c, file_cap.c:
    - Cleanup error checking for read() and write().
    -
    -Thu Sep 5 05:29:53 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version up to "0.7.2".
    - User-visible changes from 0.7.0:
    - + Corrected CAP finderinfo file format.
    - + Support for more features of CAP finderinfo files.
    - + No longer requires gcc 2.7.0 or newer.
    - + Now implements mknod() system call.
    -
    - * hfs_fs.h, dir_nat.c, file_cap.c, file_nat.c, README.sgml, dir_cap.c:
    - Include the CAP and Netatalk copyright notices.
    -
    - * hfs_fs.h, file_cap.c:
    - Repair and improve CAP support.
    -
    - * catalog.c:
    - Oops! The BkDat for new files and directories was in 1972 when
    - it should have been in 1904 (not that it matters that much).
    -
    - * inode.c:
    - The HFS MdDat should be the larger of the i_mtime and i_ctime.
    -
    - * README.sgml:
    - Change 'm_time' to 'i_mtime'.
    -
    -Wed Sep 4 13:27:35 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version up to "0.7.1".
    - User-visible changes from 0.7.0:
    - + Minor bug in CAP finderinfo file format fixed.
    - + No longer requires gcc 2.7.0 or newer.
    - + Now implements mknod() system call.
    -
    - * README.sgml:
    - Removed note about needing gcc 2.7.0 or newer.
    -
    - * file.c:
    - Optimize hfs_do_read() based on the fact that HFS has no holes in files.
    - Minor code formatting changes.
    -
    - * hfs.h, hfs_sysdep.h, mdb.c, extent.c, file.c, btree.c, catalog.c,
    - balloc.c, bnode.c:
    - Reorganize memory management routines.
    - hfs_malloc() and hfs_free() are the main routines.
    - The macros FREE() and MALLOC() are gone.
    - HFS_NEW() and HFS_DELETE() are new 'shorthand' macros.
    -
    - * btree.c:
    - Fix broken debugging code.
    -
    - * super.c, hfs.h, mdb.c, part_tbl.c, Makefile:
    - Separate partition table handling into its own file.
    -
    - * dir.c:
    - Spelling fixes.
    -
    - * sysdep.c:
    - Oops! Error check got sense reversed while editing.
    -
    - * mdb.c, sysdep.c, hfs.h, hfs_btree.h, hfs_sysdep.h, btree.c, extent.c,
    - bfind.c, bnode.c, balloc.c:
    - Make hfs_buffer a pointer to a buffer_head, rather than a buffer_head.
    -
    - * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, dir.c:
    - Add a mknod() entry to the inode_operations for normal directories.
    - All it is good for is letting root create regular files.
    -
    - * file_dbl.c, file_nat.c, file.c, file_cap.c, dir_cap.c, dir_dbl.c,
    - dir_nat.c:
    - Add the missing NULL entries to the end of the file_operations.
    -
    - * super.c, hfs_btree.h, hfs_fs.h, mdb.c, extent.c, hfs.h, catalog.c:
    - Make the remainder of the (untested) changes
    - to allow compilation with gcc 2.6.3.
    -
    - * hfs_fs.h:
    - Fix hfs_fs.h to work with gcc 2.6.3.
    -
    - * hfs_fs.h:
    - (struct hfs_cap_info) should never have been 'packed'.
    -
    - * BUG_INFO:
    - Use -V for getting version of module utilities.
    -
    - * super.c, sysdep.c, trans.c, hfs_fs_sb.h, inode.c, hfs_fs.h,
    - hfs_fs_i.h, file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c,
    - dir_nat.c, file.c, dir.c, dir_cap.c:
    - Fix up hfs_fs{,_i,_sb}.h in preparation for inclusion in kernel.
    -
    -Tue Sep 3 23:58:03 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs.h:
    - Change eventual destination to linux/fs/hfs rather than include/linux.
    -
    - * super.c, inode.c, mdb.c, hfs_btree.h, hfs_fs.h, hfs_sysdep.h,
    - file_dbl.c, file_nat.c, hfs.h, dir_nat.c, extent.c, dir_dbl.c,
    - catalog.c, dir_cap.c, brec.c, btree.c, binsert.c, bnode.c, bdelete.c,
    - bfind.c, bins_del.c, balloc.c:
    - Replace all the swap{16,32}() stuff w/ ntohl() and friends.
    -
    -Fri Aug 30 09:51:23 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Rewrite installation instructions and bump version up to "0.7.0".
    -
    - * Makefile:
    - Remove the INCDIR variable; we now rely on the
    - user to have the correct links in /usr/include.
    -
    -Mon Aug 26 12:25:41 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Reformat the documentation and bump version up to "pre-0.7-9".
    - Hopefully this will become version 0.7 in a few days.
    -
    -Thu Aug 22 08:00:44 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * README.sgml, version.c:
    - Bump version up to "pre-0.7-8".
    -
    - * file_nat.c, file_dbl.c:
    - AppleDouble headers had resource fork size in wrong byte order.
    -
    -Wed Aug 21 05:22:28 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version up to "pre-0.7-7".
    -
    - * bnode.c:
    - Fixed a long-standing bug in hfs_bnode_lock().
    - This bug occasionally caused lock-up under heavy load.
    -
    -Tue Aug 20 09:15:10 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * README.sgml, version.c:
    - Bump version up to "pre-0.7-6".
    -
    - * catalog.c:
    - Fix a deadlock problem in catalog readers/writers locking.
    -
    - * bins_del.c:
    - hfs_bnode_update_key() was still corrupting the header node sometimes.
    -
    - * catalog.c, dir.c:
    - Fix problem with extending the catalog B-tree hanging hfs_cat_commit().
    - Fix a race that could delete a non-empty directory.
    -
    -Sun Aug 18 23:16:43 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version to "pre-0.7-5" for test release.
    -
    - * dir_cap.c, README.sgml:
    - Change ".:rootinfo:" to ".rootinfo".
    -
    - * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c:
    - Mangle the names as first step in hfs_{cap,dbl,nat}_lookup().
    - Use the new hfs_streq() to catch mixed case matches to the special
    - files and directories in hfs_{cap,dbl,nat}_lookup().
    - Store reserved names only once.
    -
    - * dir.c, hfs.h, string.c:
    - Implement hfs_streq() which tests for string equality more
    - rapidly than hfs_strcmp() by checking for equal length first,
    - and use it when checking for reserved names.
    -
    - * inode.c, TODO, dir_cap.c, dir_dbl.c, README.sgml:
    - Provide the metadata for the root directory for the CAP and AppleDouble
    - schemes in the files ".:rootinfo:" and "%RootInfo", respectively.
    -
    - * TODO, super.c:
    - Add (untested) support for the old Mac Plus style of partition map.
    -
    - * bdelete.c, TODO:
    - Note the possibility of bdelete() to hanging on a corrupted B-tree.
    -
    - * TODO:
    - Add items corresponding to some of the 'XXX' comments in the sources.
    -
    - * dir_dbl.c, dir_cap.c:
    - Update comments, removing ref. to a comment that once existed in inode.c
    -
    - * catalog.c:
    - Remove some redundant locking and error checks
    - that had been previously marked as questionable.
    -
    -Sat Aug 17 08:06:56 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * binsert.c, bfind.c, bins_del.c, balloc.c, bdelete.c:
    - Edited some comments for correctness.
    -
    - * README.sgml, version.c:
    - Bump version up to "pre-0.7-4" in preparation for snapshot release.
    -
    - * Makefile:
    - Have 'make dep' delete the *.o and *.s files.
    -
    - * catalog.c, hfs.h, TODO, bfind.c:
    - Move looping from hfs_cat_next() into hfs_bsucc(),
    - where it can be done an entire node at a time.
    -
    -Fri Aug 16 05:02:59 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * TODO:
    - Add AppleShare support to the list of goals.
    -
    - * trans.c, super.c, hfs_fs.h, README.sgml:
    - Add a "names=netatalk" mount option, since
    - Netatalk quotes initial periods and CAP doesn't.
    -
    - * Makefile:
    - Oops! Had removed the 'include .depend' from Makefile.
    -
    - * inode.c, hfs_fs.h, file_nat.c, file_dbl.c, file.c, dir_nat.c,
    - dir_dbl.c, dir_cap.c, dir.c, README.sgml:
    - Update for 2.0.1 and newer kernels.
    -
    - * Makefile:
    - Get rid of ifeq stuff and use a .tmpdepend file to make sure
    - a failed 'make depend' doesn't allow a 'make hfs.o'.
    -
    -Wed Aug 14 01:03:01 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump version up to "pre-0.7-3" in preparation for snapshot release.
    -
    - * btree.c, extent.c, bnode.c:
    - Fix up some debugging code.
    -
    -Tue Aug 13 12:42:12 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * version.c, README.sgml:
    - Bump revision to "pre-0.7-2".
    -
    - * super.c, sysdep.c, mdb.c, file_nat.c, inode.c, file_cap.c,
    - file_dbl.c, file.c, extent.c, dir.c, catalog.c, btree.c, bnode.c,
    - balloc.c:
    - Added the remaining missing function comments.
    -
    - * Makefile, README.sgml:
    - Simplify the default make rule to build the dependency file AND hfs.o.
    - Change the installation instructions to reflect the change.
    -
    - * hfs.h:
    - Added missing structure comments.
    -
    - * bdelete.c:
    - Merge bdelete_brec() back into hfs_bdelete().
    - Add missing function comments.
    -
    -
    - * extent.c:
    - Insignificant code change removing an unneeded indirection.
    -
    - * btree.c, hfs_btree.h, balloc.c, bnode.c:
    - Add a 'sys_mdb' field to (struct hfs_btree).
    -
    - * extent.c, hfs_sysdep.h, sysdep.c, bnode.c, balloc.c, bfind.c,
    - Makefile:
    - Move hfs_buffer_read() from hfs_sysdep.h to sysdep.c so it can use
    - the symbol HFS_SECTOR_SIZE rather than the manifest constant 512.
    - Have hfs_buffer_read() print an error message,
    - and remove redundant errors from the callers.
    -
    - * hfs_sysdep.h, mdb.c, super.c, file.c, hfs.h, hfs_btree.h, catalog.c,
    - extent.c, btree.c, balloc.c, bfind.c, bnode.c:
    - Get rid of the type hfs_device and the fields of that type,
    - using the type hfs_sysmdb and the 'sys_mdb' field in its place.
    -
    - * Makefile:
    - Fix definition of HDRS variable.
    -
    - * README.sgml, version.c:
    - Bump version up to "pre-0.7-1".
    -
    - * Makefile:
    - Separate sources and headers into three groups:
    - B-tree code, HFS code and Linux code.
    -
    - * bitmap.c, bitops.c, hfs.h, hfs_sysdep.h, balloc.c:
    - Implemented portable set of bit operations in hfs_sysdep.h
    -
    - * mdb.c, hfs_sysdep.h, hfs_btree.h, extent.c, btree.c, bitmap.c,
    - bnode.c, balloc.c:
    - Implement a portable set of buffer operations in hfs_sysdep.h
    -
    - * TODO:
    - Remove note about separating header files into two parts.
    -
    - * catalog.c:
    - Remove call to hfs_mdb_dirty(), since the hfs_brec_relse() does it.
    -
    - * hfs.h, extent.c, file.c:
    - Move hfs_getblk() from extent.c to file.c, since that is now the
    - only file that actually uses it.
    -
    - * balloc.c:
    - Replace use of hfs_getblk() in balloc.c with a local function
    - (get_new_node()) that doesn't retry, since B-trees can't shrink.
    -
    - * hfs.h, hfs_btree.h, hfs_sysdep.h, mdb.c, extent.c:
    - Make hfs_buffer a typedef.
    -
    - * inode.c, hfs.h, hfs_sysdep.h, dir.c:
    - Change hfs_sysentry to a typedef.
    - Rename 'sysentry' field of (struct hfs_cat_entry) to 'sys_entry'.
    -
    - * super.c, mdb.c, catalog.c:
    - Rename hfs_cat_sync() to hfs_cat_commit() and call it
    - from hfs_mdb_commit() rather than from hfs_write_super().
    -
    - * catalog.c, file.c:
    - Minimize the calls to hfs_mdb_dirty(). Now called when:
    - 1) A buffer holding a volume bitmap block is dirtied.
    - 2) A dirty B-tree node is written back to the buffers.
    - 3) A dirty catalog entry is written back to the buffers.
    -
    - * hfs_sysdep.h, hfs.h:
    - Make hfs_sysmdb a typedef.
    -
    -Sun Aug 11 08:46:10 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_sysdep.h, extent.c, hfs.h:
    - Replace hfs_mdb_{lock,unlock} with more portable
    - scheme using a wait queue in the MDB.
    -
    - * hfs.h, hfs_btree.h, hfs_sysdep.h, bnode.c, catalog.c, binsert.c:
    - Make hfs_wait_queue a typedef'd pointer to a (struct wait_queue).
    - Rename hfs_wait_on() to hfs_sleep_on().
    -
    - * catalog.c, hfs_sysdep.h, super.c, bfind.c, bnode.c, balloc.c:
    - Implemented hfs_dev_name() in hfs_sysdep.h
    - as a portable call to produce a device name.
    -
    - * super.c, hfs.h, mdb.c:
    - Rename hfs_mdb_read() to hfs_mdb_get(), and don't take a
    - 'sys_mdb' argument. That's the callers responsibility.
    -
    - * sysdep.c, Makefile:
    - Remove the pointless file sysdep.c
    -
    - * README.sgml:
    - Clean up the "System Requirements" section.
    -
    -Sat Aug 10 22:41:24 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * sysdep.h, sysdep.c, super.c, hfs_sysdep.h, mdb.c, string.c,
    - hfs_fs.h, hfs_fs_i.h, hfs_fs_sb.h, hfs_btree_private.h, hfs_btree.h,
    - file_cap.c, file_dbl.c, file_nat.c, hfs.h, file.c, dir_nat.c,
    - extent.c, dir.c, dir_cap.c, dir_dbl.c, catalog.c, bnode.c, brec.c,
    - btree.c, binsert.c, bitmap.c, bitops.c, bfind.c, bins_del.c,
    - Makefile, balloc.c, bdelete.c:
    - Includes the hfs.h that was missing from the previous check in.
    - MAJOR include-file cleanup:
    - hfs_btree.h merged into hfs.h
    - hfs_btree_private.h renamed hfs_btree.h
    - sysdep.h renamed hfs_sysdep.h
    - Fixed some minor portability fixes shown up by the header split.
    -
    - * README.sgml:
    - Add instructions for a dealing with a missing linux/version.h
    -
    - * hfs_fs.h, mdb.c, string.c, catalog.c, extent.c, btree.c, bitmap.c,
    - bitops.c, bnode.c, brec.c, bins_del.c, binsert.c, bdelete.c, bfind.c,
    - balloc.c:
    - Major split of hfs_fs.h into Linux-specific
    - part (hfs_fs.h) and HFS-specific part (hfs.h).
    -
    - * file.c, extent.c:
    - Move hfs_getblk() from file.c to extent.c
    -
    - * sysdep.h, super.c, mdb.c, hfs_fs_sb.h, hfs_fs.h, file.c, extent.c,
    - catalog.c, bnode.c, bitmap.c:
    - Make the field 's_mdb' in (struct hfs_sb_info) a pointer to
    - the MDB, rather than the actual MDB. This allowed the definition
    - of (struct hfs_mdb) to be moved from hfs_fs_sb.h to hfs_fs.h.
    -
    - * ccache.c, hfs_fs.h, Makefile, catalog.c:
    - Merged ccache.c and catalog.c into the latter.
    - Moved definition of (struct hfs_cat_rec) into catalog.c
    -
    - * extent.c:
    - Oops! Last set of changes didn't compile but they're OK now.
    -
    - * hfs_btree.h, hfs_fs.h, mdb.c, ccache.c, extent.c, btree.c:
    - Move the definition of (struct hfs_raw_extent) inside
    - extent.c and treat it as simple array of U16's elsewhere.
    -
    - * hfs_fs.h, dir_dbl.c, dir_nat.c, ccache.c, catalog.c, dir_cap.c:
    - Make hfs_cat_next() return the CNID and cdrType of the entry.
    - Now catalog.c and ccache.c are the only files which
    - depend on the structure of a catalog record on disk.
    -
    - * dir.c, hfs_fs.h, catalog.c:
    - Replace hfs_cat_new_{file,dir}() with hfs_cat_{create,mkdir}()
    - which are wrappers for what used to be hfs_cat_create().
    -
    - * hfs_fs.h, mdb.c, super.c, Makefile:
    - Split super.c into super.c (Linux stuff) and mdb.c (MDB stuff).
    -
    - * super.c, hfs_fs_sb.h:
    - Add the MDB field 'drAtrb' to (struct hfs_mdb) as the field 'attrib'.
    -
    - * hfs_fs_sb.h, super.c:
    - Split hfs_read_super() into hfs_read_super() and hfs_mdb_read().
    -
    - * super.c, hfs_fs_sb.h:
    - Remove the unneeded 'hs' field from (struct hfs_mdb).
    -
    - * TODO:
    - Remove item about hfs_notify_change() needing to update metadata.
    -
    - * inode.c, hfs_fs.h, hfs_fs_sb.h, file_cap.c, file_dbl.c, file_nat.c,
    - file.c, dir.c:
    - Add a flags argument to hfs_{cap,dbl,nat}_buildmeta() so that
    - it only builds the parts that are currently out-of-date.
    - Call hfs_{cap,dbl,nat}_buildmeta() through hfs_update_meta()
    - in hfs_notify_change() and hfs_rename() to update the metadata.
    -
    - * dir.c:
    - Make test for normal dir in update_dirs_{plus,minus}() more explicit.
    -
    - * inode.c, file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c, dir_nat.c,
    - file.c, README.sgml, dir_cap.c:
    - Resolve the "meta-data" vs. "metadata" rivalry in favor of the latter.
    -
    - * btree.c:
    - Simplify some debugging code.
    -
    - * hfs_btree_private.h, bnode.c, btree.c, balloc.c:
    - Put the in-core copy of the header node IN the
    - B-tree structure rather than just a pointer to it.
    -
    - * hfs_btree_private.h, btree.c, bnode.c:
    - Have hfs_btree_commit() call hfs_bnode_commit()
    - to commit the header and root nodes.
    -
    - * hfs_fs.h, super.c, hfs_btree_private.h, btree.c, hfs_btree.h,
    - balloc.c:
    - Change hfs_commit_mdb() to hfs_mdb_commit().
    - Make hfs_mdb_commit() call hfs_btree_commit().
    - Move code to update B-tree size and extent
    - from hfs_btree_extend() to hfs_btree_commit().
    - Make hfs_btree_extend() call hfs_mdb_commit().
    -
    - * super.c:
    - Change hfs_commit_super() to hfs_commit_mdb().
    -
    - * btree.c, bnode.c, bfind.c:
    - Fixed up broken debugging code and error messages.
    -
    - * super.c, hfs_btree_private.h, btree.c, hfs_btree.h, bdelete.c,
    - binsert.c, balloc.c:
    - Now use write-back caching of B-tree header fields.
    -
    - * hfs_fs.h:
    - Get rid of the add{16,32}() inlines as they are no longer used.
    -
    - * hfs_btree_private.h, binsert.c, btree.c, bdelete.c, bfind.c, balloc.c:
    - All the needed fields of the B-tree header are
    - now cached for reading, but not yet writing.
    -
    - * TODO:
    - Remove "Implement write count" from TODO list.
    -
    - * file.c, super.c, bnode.c:
    - Implement write count.
    -
    - * catalog.c:
    - Fix directory entry counting in hfs_cat_move().
    -
    - * balloc.c:
    - Simplify hfs_btree_extend(), since the allocation
    - request will get rounded up to the clumpsize.
    -
    - * extent.c:
    - Honor clumpsize when allocating blocks to files.
    -
    - * file_cap.c, file_dbl.c, file_nat.c, super.c, dir.c, file.c,
    - ccache.c, catalog.c, balloc.c:
    - Mark 44 functions in need of commenting.
    -
    - * hfs_fs_sb.h, super.c, extent.c, hfs_fs.h, ccache.c, btree.c, balloc.c:
    - Record clumpsize in allocation blocks rather than 512-byte blocks.
    -
    - * sysdep.h, super.c, TODO, balloc.c, hfs_fs_sb.h:
    - Now updates the backup MDB when a B-tree grows.
    -
    - * extent.c:
    - hfs_extent_free() had test against NULL backward.
    - The result is that access to a file with extents in the extents
    - B-tree would result in an infinite loop in hfs_cat_put().
    -
    - * hfs_fs_sb.h, super.c, hfs_fs.h:
    - Reorganize partition map code to get size of partition
    - in preparation for dealing with the alternate MDB.
    -
    -Fri Aug 9 03:25:13 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * Makefile:
    - Add make rules for README.{ps,info}
    -
    - * README, README.sgml, DOC, FAQ, Makefile, .cvsignore,
    - Merge CHANGES into ChangeLog.
    - Merge DOC, FAQ and README into README.sgml.
    - Add make rules for building README.{txt,dvi}
    -
    - * BUG_INFO, Makefile:
    - Added a BUG_INFO script which attempts to collect some useful
    - information which I'd like to see in every bug report I receive.
    -
    - * Makefile, version.c:
    - Added version.c which contains a version string.
    -
    -Thu Aug 8 21:48:24 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * trans.c:
    - Fix Latin-1 -> Macintosh filename mapping to change colons to pipes.
    -
    - * trans.c:
    - Fixed Mac->Latin-1 translation to behave as documented for the
    - extended 8-bit characters without corresponding Latin-1 characters.
    -
    - * inode.c, super.c, file.c, hfs_fs_i.h, hfs_fs_sb.h, DOC:
    - Added a conv={binary,text,auto} mount option similar to that of the
    - msdos, hpfs and iso9660 filesystems, but applying only to data forks.
    - As compared to those filesystems, HFS has the advantage that only a
    - single CR need be converted to a NL, rather than a CR/NL sequence, so
    - it is quite safe to seek in the file.
    - Additionally the 'Type' field is far more reliable indicator of text
    - files than a file extension.
    -
    - * super.c:
    - Simplified parsing of mount options.
    -
    - * super.c:
    - Oops! The part=<n> mount option was being parsed in octal!
    -
    - * TODO:
    - Remove "case=lower" from the list of goals.
    -
    - * super.c, hfs_fs.h, hfs_fs_sb.h, string.c, dir_dbl.c, dir_nat.c,
    - dir_cap.c, DOC:
    - Resurrect the case={asis,lower} mount option.
    -
    - * dir.c:
    - Simpler test for "normal" directory in update_dirs_{plus,minus}().
    -
    - * hfs_fs_sb.h, super.c, dir.c, hfs_fs.h, catalog.c, DOC:
    - Add mount options to specify what Type and Creator will be used for
    - new files and change the default from NULLs to "????".
    -
    -Wed Aug 7 11:32:22 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * catalog.c:
    - In hfs_cat_next() use entry->cnid rather than the key of the initial
    - brec to identify the end of the directory.
    -
    - * README:
    - Update for pre-0.7 version.
    -
    - * hfs_fs.h:
    - Create versioned module if CONFIG_MODVERSIONS is set in linux/config.h
    -
    - * TODO:
    - Note need for special steps for unaligned accesses on some machines.
    -
    - * FAQ:
    - Added Q0: What is HFS?
    - Added Q7: Does hfs_fs work w/ 400k and 800k diskettes?
    - Brought Q6 (about writability) up to date.
    - Made a few other answers more verbose.
    -
    -Tue Aug 6 00:58:46 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * Makefile:
    - Changed 'snapshot' rule to include cvs tag command.
    -
    - * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c, ccache.c:
    - Implemented readers half of dir locking scheme so readdir() should
    - produce consistent results and count_dir_entries() is not race prone.
    -
    - * catalog.c:
    - hfs_cat_move() was calling hfs_cat_decache() after changing
    - the key rather than before, corrupting the hash lists.
    -
    -Mon Aug 5 14:03:46 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, catalog.c:
    - Implemented the writers half of a locking scheme for directories.
    -
    - * inode.c:
    - Fixed a serious bug in hfs_notify_change() that would allow a chmod()
    - on directory meta-data and would cause the directory inode (if it was
    - in memory at the time) to change into a file inode.
    -
    - * inode.c:
    - Fixed a problem with write permissions on directory meta-data.
    -
    - * dir_dbl.c, dir_nat.c, dir_cap.c:
    - hfs_{cap,dbl,nat}_readdir() now return the correct value in the 'd_ino'
    - field of the dirent for all cases, something I think has always been
    - done incorrectly until now.
    -
    - * dir_nat.c, inode.c, dir_cap.c:
    - In hfs_{cap,nat}_lookup() take advantage of the
    - 'file_type' field of (struct hfs_inode_info).
    -
    - * TODO:
    - Removed two accomplished goals (rename() and improved readdir()).
    -
    - * inode.c, dir_dbl.c, dir_nat.c, hfs_fs_i.h, dir.c, dir_cap.c:
    - Rewrite hfs_{cap,dbl,nat}_readdir() to take advantage of hfs_cat_next().
    - They now use a uniform 'i_size' for all inodes for a given directory.
    - This simplifies update_dirs_{plus,minus}() and eliminates the need for
    - the 'file_size' and 'dir_link' fields of (struct hfs_inode_info).
    - For the CAP and Netatalk schemes the meta-data directories are now the
    - last entries rather than coming just after '.' and '..'. This is in
    - preparation for the day when we can write to the files in those
    - directories, and ensures that when using 'tar' to copy HFS filesystems
    - the file or directory will be created before the meta-data is written.
    - Otherwise we could be stuck writing meta-data and not knowing if it is
    - for a file or a directory!
    -
    - * ccache.c:
    - Updated count_dir_entries() for new hfs_cat_next().
    -
    - * hfs_fs.h, catalog.c:
    - hfs_cat{nth,next}() no longer take a 'types' argument,
    - so they now return all entries.
    - hfs_cat_next() now uses the ParID of the key to detect
    - the end of the directory.
    - hfs_cat_nth() now accepts n=0 as a valid input, requesting the thread.
    -
    - * trans.c, string.c, super.c, dir_nat.c, hfs_fs.h, dir.c, dir_cap.c,
    - dir_dbl.c, catalog.c:
    - Rename (struct hfs_cname) to the more appropriate (struct hfs_pstr).
    -
    - * hfs_fs.h, hfs_btree.h:
    - Move some constants from hfs_fs.h to hfs_btree.h
    -
    - * bdelete.c, hfs_btree.h:
    - Remove hfs_bdelete_brec() from public B-tree interface.
    -
    - * hfs_btree_private.h, hfs_fs.h, btree.c, hfs_btree.h, bnode.c, brec.c,
    - bfind.c, bins_del.c, binsert.c, balloc.c, bdelete.c, Makefile:
    - Split B-tree stuff into public and private parts:
    - brec.c split into bfind.c and brec.c
    - hfs_btree.h split into hfs_btree.h and hfs_btree_private.c
    -
    - * inode.c:
    - The tests and sets of the HFS_FIL_LOCK bit where all reversed!
    -
    - * hfs_fs.h, ccache.c:
    - Redo some ccache stuff, removing the 'error' field from
    - (struct hfs_cat_entry) and ensuring that hfs_cat_put()
    - will not sleep on an uninitialized entry.
    -
    -Sun Aug 4 23:43:28 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * sysdep.h:
    - Change swap{16,32}() back to macros since hton[ls]() are functions.
    -
    - * hfs_fs.h, ccache.c:
    - Use only lowest order byte of parent CNID in hashing a catalog key.
    -
    - * bdelete.c:
    - The "improved" bdelete() was TOO paranoid looking for missing parents.
    -
    - * ccache.c:
    - Get rid of pointless swap16const(0).
    -
    - * hfs_fs.h, inode.c, extent.c, ccache.c, dir_cap.c, dir_nat.c,
    - binsert.c, catalog.c:
    - Store cnid and associated constants in big-endian byte order.
    - This reduces the number of byte-order swaps required.
    -
    - * sysdep.h:
    - Make swap32() and swap16() inline functions.
    -
    - * dir_nat.c, dir_cap.c, dir_dbl.c:
    - Added hfs_rename() to the inode_operations for normal directories.
    -
    - * dir.c, hfs_fs.h:
    - Added hfs_rename() and cleaned up hfs_{create,mkdir,unlink,rmdir}().
    -
    - * catalog.c:
    - Added the missing check for moving a directory into itself.
    -
    - * catalog.c, ccache.c, hfs_fs.h:
    - Implement a nearly ideal hfs_cat_move().
    - It still needs to prevent moving a directory into itself.
    - The functions hfs_cat_{create,delete,move}() still need work with
    - respect to their atomicity (especially vs. readdir).
    -
    - * bdelete.c:
    - Fixed a serious bug in hfs_bdelete_brec() that would yield a corrupted
    - b-tree when the first record in a bnode was deleted.
    - Made bdelete() more aggressive when checking for missing parents.
    -
    -Sat Aug 3 06:11:50 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * btree.c, super.c:
    - Fixed a problem that caused a kernel oops when no HFS filesystem
    - is found.
    -
    -Wed Jul 24 13:06:12 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * catalog.c:
    - Remove race in hfs_cat_create() that could overflow directory valence.
    -
    - * catalog.c:
    - Fix hfs_cat_create() so the parent directory doesn't get deleted
    - out from under it. Otherwise we could have created files and
    - directories in deleted directories.
    -
    - * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c, ccache.c:
    - Redo hfs_cat_{next,nth}() in terms of which entry types to
    - allow, rather than which to skip.
    -
    - * catalog.c:
    - The function hfs_cat_create() would fail to hfs_cat_put(entry) if
    - the 'record' argument was invalid or if the 'result' argument was NULL.
    -
    - * dir.c:
    - The functions hfs_{create,mkdir,unlink,rmdir} all failed to
    - call iput() when their arguments conflicted with a reserved name.
    -
    - * catalog.c, hfs_fs_sb.h:
    - Start over on rename(). Still unfinished.
    - Fix silly bug in hfs_cat_create() that made it always fail.
    -
    - * ccache.c:
    - Fix byte-order bug in write_entry().
    -
    -Tue Jul 23 12:12:58 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * dir_dbl.c, dir_nat.c, hfs_fs.h, dir.c, dir_cap.c:
    - Remove the macros KEY() and PARENT() since the key is now easy
    - to access through the catalog entry.
    - Replace the macros NAME{IN,OUT}() with inline functions
    - hfs_name{in,out}() to gain type checking of arguments.
    -
    - * catalog.c:
    - Remove the macro TYPE().
    -
    - * inode.c, file_dbl.c, file_nat.c, file.c, file_cap.c:
    - Remove the #define's of the unused macro KEY().
    -
    - * hfs_fs.h, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c, dir.c:
    - Replace hfs_lookup_parent() in dir.c with hfs_cat_parent() in catalog.c.
    - This new function performs locking to protect against rename() changing
    - the parent during I/O.
    - It is also intended for use with files as well as directories.
    - Change hfs_{cap,dbl,nat}_lookup() to use the new function.
    -
    - * dir.c, hfs_fs.h, catalog.c:
    - Remerge hfs_cat_{create,mkdir}() into hfs_cat_create() and resurrect
    - hfs_cat_new_{file,dir}().
    - Fix hfs_cat_{create,delete} to use the improved catalog cache for
    - locking in place of directory-level create/delete locks.
    - Fix hfs_{create,mkdir}() to use the new hfs_cat_create().
    -
    - * hfs_fs.h, ccache.c:
    - Rewrite parts to remove need for specialized create/delete locking.
    - Use new case-independent hash function.
    - Fix bug in hfs_cat_get() that would read an entry w/o locking it.
    - Call hfs_relinquish() before retrying a deleted entry in hfs_cat_get.
    - If there is a read error, then don't retry in hfs_cat_get().
    - Remove unused 'version' field from (struct hfs_cat_entry).
    -
    - * sysdep.h:
    - Add hfs_relinquish(), a system-independent alias for schedule().
    -
    - * hfs_fs.h, string.c:
    - Add hfs_strhash(), a simplistic case-independent hash function.
    -
    - * hfs_fs.h, inode.c:
    - Make hfs_iget() an inline function.
    -
    - * TODO:
    - Add a few goals and removed those that have been achieved.
    -
    - * Makefile:
    - Add ccache.c to list of source files.
    - Add rule for *.s files and include them in the 'clean' rule.
    -
    -Wed Jul 17 17:22:45 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * sysdep.h, trans.c, string.c, super.c, hfs_fs_i.h, hfs_fs_sb.h,
    - inode.c, hfs_btree.h, hfs_fs.h, file_dbl.c, file_nat.c, extent.c,
    - file.c, file_cap.c, dir_dbl.c, dir_nat.c, ccache.c, dir.c,
    - dir_cap.c, btree.c, catalog.c, bnode.c, brec.c, balloc.c:
    - Total rewrite of the inode-handling stuff to be centered around
    - a catalog entry cache (ccache.c). This results not only in a far
    - more sensible way of doing things, but also removed many race
    - conditions. (The source and object code both got smaller too!)
    - Many small "undocumented features" were also fixed.
    - Replace HFS_CNAME with (struct hfs_cname).
    - rename() has been temporarily abandoned.
    -
    -Thu Jul 11 01:14:38 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * dir.c:
    - As written hfs_lookup_parent() had two overlapping read requests
    - in the catalog tree. This could have led to deadlock.
    -
    -Wed Jul 10 09:27:00 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * catalog.c, hfs_fs.h, bdelete.c:
    - More work on getting rename() fleshed out. Still not done.
    - Before I can finish it looks like I'll need to build a
    - mechanism for exclusive access to the catalog tree. There
    - just doesn't seem to be any other way to get proper POSIX
    - semantics without a bunch of race conditions elsewhere.
    -
    - * hfs_fs.h, inode.c, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c:
    - More work on the still incomplete rename() code.
    - Merge hfs_cat_add_{dir,file}() into hfs_cat_create().
    - Add file-thread support to hfs_cat_{create,delete,rename}.
    -
    -Tue Jul 9 09:43:15 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode.c, dir_dbl.c, dir_nat.c, extent.c, dir_cap.c:
    - The indirect (struct hfs_file) was causing blocks not to be freed
    - when files where deleted, and an omission in hfs_put_inode() was
    - preventing the inode from getting freed. Both are now fixed.
    -
    - * hfs_fs.h, dir_dbl.c, dir_nat.c, hfs_btree.h, catalog.c, dir_cap.c,
    - bdelete.c:
    - Made unlink() and rmdir() more race resistant and did some more
    - work on the still incomplete code for rename().
    -
    - * btree.c, bnode.c:
    - There was a serious race condition in the bnode cache, so
    - hfs_bnode_find() is now modeled after Linus's inode cache.
    -
    -Mon Jul 8 10:33:38 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs_i.h, inode.c, file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c,
    - dir_nat.c, file.c, dir.c, dir_cap.c:
    - More changes to layout of (struct hfs_inode_info).
    -
    - * super.c, inode_cap.c, inode_dbl.c, inode_nat.c, inode.c, hfs_fs_i.h,
    - hfs_fs_sb.h, file_nat.c, hfs_fs.h, file.c, file_cap.c, file_dbl.c,
    - Makefile, catalog.c:
    - Implemented new layout for (struct hfs_inode_info) resulting in the
    - elimination of lots of duplicated code for hfs_*_write_inode(),
    - hfs_*_put_inode() and *_open() functions.
    - Merged inode_*.c files back into inode.c.
    - Not fully tested.
    -
    - * TODO:
    - Add a few more of my goals to the list.
    -
    - * README:
    - Documentation updates.
    -
    - * inode_nat.c, inode_cap.c, inode_dbl.c, inode.c, hfs_fs.h, hfs_fs_i.h,
    - file.c, file_cap.c, file_dbl.c, file_nat.c, catalog.c:
    - (struct hfs_file) and metadata are read when file is opened or
    - truncated and are released by iput().
    -
    -Sun Jul 7 23:55:43 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode_nat.c, inode_cap.c, inode_dbl.c, inode.c, dir_nat.c, hfs_fs.h,
    - hfs_fs_i.h, dir_cap.c, dir_dbl.c, catalog.c, dir.c:
    - (struct hfs_dir) is now inside (struct hfs_inode_info) once again.
    -
    - * inode_nat.c, super.c, inode_cap.c, inode_dbl.c, inode.c, file_nat.c,
    - hfs_btree.h, hfs_fs.h, extent.c, file_cap.c, file_dbl.c, dir_nat.c,
    - dir_cap.c, dir_dbl.c, btree.c, catalog.c, dir.c, bpath.c, brec.c,
    - bins_del.c, binsert.c, bnode.c, bfind.c, balloc.c, bdelete.c,
    - Makefile:
    - Remerged (struct hfs_bpath) and (struct hfs_brec), merging the
    - files bfind.c and bpath.c as a resurrected brec.c.
    -
    -Sat Jul 6 21:47:05 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode_cap.c, inode_dbl.c, inode_nat.c, inode.c, hfs_fs.h, hfs_fs_i.h,
    - file_cap.c, file_dbl.c, file_nat.c, hfs_btree.h, dir_nat.c, extent.c,
    - dir.c, dir_cap.c, dir_dbl.c, btree.c, catalog.c, bfind.c, bpath.c,
    - binsert.c, bdelete.c:
    - Renamed (struct hfs_brec_key) to (struct hfs_bkey).
    -
    -Tue May 28 07:53:24 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode_cap.c, catalog.c:
    - Spelling fixes.
    -
    - * inode_nat.c, super.c, inode_cap.c, inode_dbl.c, inode.c, hfs_fs.h,
    - hfs_fs_i.h, hfs_fs_sb.h, file.c, file_dbl.c, file_nat.c, dir_dbl.c,
    - dir_nat.c, extent.c, dir.c, dir_cap.c, catalog.c:
    - Structures got too big, so I had to add a layer of indirection
    - to (struct hfs_inode_info).
    - This means we must clear_inode() in inode_put().
    -
    -Mon May 27 01:32:42 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * catalog.c, file_cap.c:
    - Some sizeof() stuff now uses variable not type.
    -
    - * hfs_fs.h:
    - Make HFS_I() and HFS_SB() inline to gain type checking.
    -
    -Sun May 26 13:34:17 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * dir_nat.c:
    - Oops. Had left some debugging printk()s in place.
    -
    - * file_dbl.c, file_nat.c, file_cap.c:
    - Cleaned up variable names for consistency.
    -
    - * hfs_fs_sb.h:
    - Add a couple 'const's to function typedefs.
    -
    - * hfs_fs.h:
    - Add and update function prototypes.
    - Cleaned up type names.
    - Fix debugging malloc code.
    - Add hfs_iget_by_name() as an inline function.
    -
    - * sysdep.h:
    - Remove extra semicolon from macro definitions.
    -
    - * super.c:
    - Use new hfs_iget_by_name() to get root inode.
    -
    - * extent.c:
    - Cleaned up some variable naming for consistency.
    -
    - * catalog.c:
    - Added (untested) code for hfs_cat_move_file().
    -
    - * catalog.c:
    - Fix one missed call to hfs_cat_build_key().
    - Make hfs_cat_add_{file,dir}() take a cat_entry as an argument.
    - Add hfs_cat_new_{file,dir}() to generate new cat_entry's.
    -
    - * dir_dbl.c, dir_nat.c, dir.c, dir_cap.c:
    - Cleaned up type and variable names.
    - Updated calls to hfs_cat_build_key() and NAMEOUT()
    - Use new hfs_iget_by_*() calls.
    -
    - * inode_cap.c, inode_dbl.c, inode_nat.c:
    - Cleaned up type and variable names.
    -
    - * inode.c:
    - Update calls to hfs_cat_build_key().
    - Cleaned up type and variable names.
    - Implemented a hierarchy of hfs_iget_by*() calls.
    -
    - * catalog.c:
    - Change hfs_cat_build_key() to take a HFS_CNAME as input.
    -
    - * btree.c:
    - Initialize lsize and psize fields of file.
    -
    - * trans.c:
    - Now passes type HFS_CNAME and has name/len in "normal" order.
    -
    -Tue May 21 07:02:34 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bnode.c:
    - Attempt to read invalid bnode would have led to an infinite loop under
    - certain circumstances. One way to cause this was with an invalid
    - partition table which points beyond the end of the device.
    -
    -Sat May 11 12:38:42 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * sysdep.h, sysdep.c, inode_dbl.c, inode_nat.c, super.c, inode_cap.c,
    - inode.c, hfs_fs.h, hfs_fs_i.h, hfs_fs_sb.h, file_dbl.c, file_nat.c,
    - hfs_btree.h, extent.c, file.c, file_cap.c, dir_nat.c, dir.c,
    - dir_cap.c, dir_dbl.c, btree.c, catalog.c, bitmap.c, bitops.c,
    - bnode.c, bfind.c, bins_del.c, binsert.c, balloc.c, bdelete.c:
    - Another big wave of portability-oriented changes.
    -
    -Tue May 7 11:28:35 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * super.c, sysdep.c, sysdep.h, inode_cap.c, inode_dbl.c, inode_nat.c,
    - hfs_fs_i.h, inode.c, file_nat.c, hfs_btree.h, hfs_fs.h, file.c,
    - file_cap.c, file_dbl.c, dir_nat.c, extent.c, dir_cap.c, dir_dbl.c,
    - btree.c, catalog.c, dir.c, bnode.c, bpath.c, binsert.c, bitmap.c,
    - bitops.c, bdelete.c, bfind.c, bins_del.c, Makefile, balloc.c:
    - Start a big move to abstract all the Linux-specific stuff
    - out of the lower levels. Created sysdep.[ch] to hold it.
    -
    - * FAQ, TODO:
    - Bring some documentation up-to-date.
    -
    -Fri May 3 20:15:29 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * super.c, inode_dbl.c, inode_nat.c, inode.c, inode_cap.c, extent.c,
    - hfs_fs.h, hfs_fs_i.h, dir_dbl.c, dir_nat.c, catalog.c, dir.c,
    - dir_cap.c, bpath.c, btree.c, binsert.c, bnode.c:
    - "FID reform": 'fid' became 'cnid' (Catalog Node ID), and is now
    - a field in (struct hfs_file). The new name is more consistent
    - with Apple's documentation. The presence of 'cnid' in (struct
    - hfs_file) help move more of the code toward OS-independence.
    -
    - * inode_nat.c, super.c, trans.c, inode.c, inode_cap.c, inode_dbl.c,
    - hfs_fs.h, file_cap.c, file_dbl.c, file_nat.c, dir_nat.c, extent.c,
    - file.c, dir.c, dir_cap.c, dir_dbl.c, btree.c, catalog.c, bnode.c,
    - bpath.c, bins_del.c, binsert.c, bitmap.c, bitops.c, bdelete.c,
    - bfind.c, balloc.c:
    - A lot of changes in what headers are included and in what order.
    -
    -Sat Apr 27 12:28:54 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * FAQ:
    - Updated for current writability status.
    -
    - * .cvsignore:
    - Added ChangeLog.
    -
    - * file_dbl.c, file_nat.c, file_cap.c, file.c, dir_dbl.c, dir_nat.c,
    - dir_cap.c:
    - Added the default fsync() to all file_operations structures.
    -
    - * dir_nat.c, hfs_fs.h, dir.c, dir_cap.c, dir_dbl.c:
    - Add rmdir() for normal directories.
    -
    - * binsert.c:
    - I had messed up insertion so that is would sometime fail to
    - split the root, but its OK now.
    -
    - * dir.c:
    - hfs_do_unlink() decremented directory counts rather than file counts.
    -
    -Wed Apr 24 13:20:08 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, bnode.c, hfs_btree.h:
    - Fixed a couple more type size assumptions.
    -
    - * hfs_fs.h, balloc.c, bitmap.c, bitops.c:
    - "Portable" bitmap handling was wrong for just about everything but
    - the i386 and the "inverse big-endian" bit ordering that I thought
    - the m68k port was using. It seems the m68k port is now using standard
    - big-endian bit-numbering conventions.
    - This code is now correct for the standard big- and little-endian bit
    - orderings. (which should cover all Linux systems?)
    - Also no longer assumes sizeof(long) == 4, though that might still be
    - a problem in other parts of the code.
    -
    -Tue Apr 23 19:19:27 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * FAQ:
    - Bring uptodate for this snapshot.
    -
    - * Makefile:
    - Add FAQ to $(MISC)
    -
    - * README, TODO:
    - Documentation updates.
    -
    - * bdelete.c:
    - Spelling fixes.
    -
    - * dir_cap.c:
    - In unlink() don't force metadata into memory if not present.
    -
    - * bdelete.c:
    - Some function comments and some clean up.
    -
    - * bins_del.c:
    - Added missing function comment for hfs_bnode_update_key().
    -
    - * binsert.c, bitmap.c:
    - Spelling and grammar corrections to comments.
    -
    - * hfs_btree.h, hfs_fs.h, bins_del.c, binsert.c, Makefile, bdelete.c:
    - Clean up of hfs_bdelete(), splitting bins_del.c into three files:
    - bins_del.c, binsert.c and bdelete.c
    -
    - * bpath.c, bins_del.c:
    - hfs_bdelete() is now working "correctly", but needs some cleaning up.
    -
    -Mon Apr 22 05:35:41 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, bpath.c, hfs_btree.h, bins_del.c, bnode.c, balloc.c,
    - bfind.c:
    - Rewrite bnode handling, heading toward a more write-behind approach.
    - Have done away with HFS_LOCK_BLIND.
    -
    - * inode_dbl.c, inode_nat.c, extent.c, hfs_fs_i.h, inode_cap.c:
    - Was trying to truncate resource fork of directories!
    -
    -Sun Apr 21 08:15:43 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * balloc.c:
    - Updated to use truncate() to grow full trees.
    -
    - * extent.c, hfs_fs.h, file.c, inode.c:
    - Added truncate() for normal files.
    -
    - * bins_del.c:
    - hfs_bdelete() fixes for handling removal of root.
    -
    - * inode_cap.c, inode_dbl.c, inode_nat.c:
    - Release storage for deleted files in hfs_*_put_inode().
    -
    - * bitmap.c:
    - Make len=0 valid for hfs_{set,clear}_vbm_bits().
    -
    - * super.c, inode.c, hfs_fs_i.h, hfs_fs_sb.h, btree.c, balloc.c:
    - Changed from clumpsize to clumpblks.
    -
    - * inode_nat.c, hfs_fs.h, inode_cap.c, inode_dbl.c, btree.c, extent.c,
    - balloc.c:
    - Some extent-related changes in preparation for truncate() support.
    -
    -Sat Apr 20 10:59:13 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * inode_nat.c, hfs_fs_i.h, inode.c, inode_cap.c, inode_dbl.c,
    - dir_nat.c, hfs_fs.h, dir.c, dir_cap.c, dir_dbl.c:
    - Removed dir.valence from hfs inode.
    - Added unlink(), but still need truncate() and some more support
    - in hfs_*_put_inode() to free the disk space used by deleted files.
    -
    - * bnode.c:
    - Check for NULL bnode in hfs_bnode_relse().
    -
    - * bins_del.c:
    - Fixed a byte-order problem in bdelete_nonempty().
    -
    - * hfs_fs.h, bnode.c, bpath.c, hfs_btree.h, balloc.c, bins_del.c:
    - First attempt at hfs_bdelete().
    -
    - * dir.c:
    - The Finder would display strange things if it couldn't set frView.
    - Therefore initialize frView field for new directories.
    -
    - * file_cap.c, file_dbl.c, file_nat.c, hfs_fs.h:
    - Define User/Finder info fields of catalog entry in more detail.
    -
    - * hfs_fs.h:
    - HFS_BFIND_DELETE should require exact match.
    -
    - * dir.c:
    - Set "record in use" bit of filFlags for new files.
    -
    - * inode.c:
    - Was doing the wrong thing with i_ctime.
    -
    - * dir_nat.c, dir_cap.c, dir_dbl.c:
    - Added some missing updates to the inode in hfs_*_{create,mkdir}().
    -
    -Sun Apr 14 00:10:52 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, file_dbl.c, file_nat.c, file.c:
    - Work around the ever-changing type of f_reada.
    -
    -Sat Apr 13 00:43:41 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bpath.c, bfind.c:
    - Spelling corrections in comments.
    -
    - * bins_del.c:
    - ifdef out shift_left() until it is actually used.
    -
    - * hfs_btree.h, hfs_fs.h, bins_del.c, bpath.c, bfind.c:
    - Cleaned up code related to 'flags' argument to hfs_bpath_find().
    -
    -Fri Apr 12 23:30:01 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bpath.c:
    - Updated comments.
    - Rewrote hfs_bpath_init() and hfs_bpath_next().
    -
    - * hfs_btree.h:
    - Updated prototype for hfs_bpath_init().
    -
    - * bins_del.c:
    - Updated call to hfs_bpath_init().
    -
    - * inode.c, inode_cap.c, inode_dbl.c, inode_nat.c, extent.c, file_cap.c,
    - file_dbl.c, file_nat.c, dir_cap.c, dir_dbl.c, dir_nat.c, catalog.c,
    - dir.c:
    - Renamed hfs_brec_relse() to hfs_brelse().
    -
    - * hfs_fs.h, hfs_btree.h:
    - Updated prototypes to reflect new names in bpath.c
    -
    - * bins_del.c:
    - Updated calls to functions in bpath.c
    - Updated comments.
    -
    - * Makefile:
    - Renamed brec.c to bpath.c
    -
    - * bfind.c:
    - Updated calls to functions in bpath.c
    - Added hfs_brelse() which was previously hfs_brec_relse() in brec.c
    -
    - * bpath.c:
    - brec.c renamed to bpath.c
    - Functions renamed to reflect their current actions.
    - Comments are still out of date.
    - hfs_brec_relse() renamed to hfs_brelse() and moved to bfind.c
    -
    - * brec.c:
    - brec.c renamed to bpath.c
    -
    -Wed Apr 10 07:20:28 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs.h, extent.c, hfs_btree.h, brec.c, dir.c, bfind.c,
    - bins_del.c:
    - Backed-out changes to hfs_binsert() that added the ability to
    - return the new record, since it will probably not ever be needed.
    -
    - * extent.c:
    - Since 1.3.45 truncate() has locked the file, so there is no need
    - for all the things I've been doing to hfs_file_extend() & new_extent().
    - Those two functions have been cleaned up a bit (similar to older forms).
    -
    - * extent.c:
    - hfs_file_extend() now more "robust", but new_extent() is still
    - not fully "concurrency safe."
    -
    -Tue Apr 9 09:01:18 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bins_del.c:
    - Made split() inline.
    -
    - * inode.c, dir_nat.c, hfs_fs.h, dir_cap.c:
    - Added hfs_itry() to get in-core inodes.
    -
    - * inode_dbl.c, inode_nat.c, hfs_fs.h, inode.c, inode_cap.c, file_dbl.c,
    - file_nat.c, hfs_btree.h, extent.c, file_cap.c, dir_cap.c, dir_dbl.c,
    - dir_nat.c, brec.c, catalog.c, dir.c, bins_del.c, bnode.c,
    - bfind.c:
    - Rewrite of all the (struct hfs_brec) stuff.
    -
    -Mon Apr 8 21:50:01 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * btree.c, extent.c, bnode.c:
    - Fixed format strings in a few debugging printk()'s.
    -
    - * brec.c, hfs_fs.h:
    - Removed hfs_brec_relse_one().
    -
    - * hfs_fs.h, bnode.c, brec.c, hfs_btree.h, bfind.c, bins_del.c, balloc.c:
    - (struct hfs_bnode_ref)s are now returned by value rather than reference
    - and they are in (struct hfs_brec) rather than pointed to. Cuts down on
    - a lot of kmalloc() and kfree() traffic.
    -
    - * hfs_fs.h, dir.c, extent.c, bins_del.c:
    - Modified hfs_binsert() to be able to return the new record.
    -
    - * bins_del.c, hfs_btree.h:
    - Added shift_left(), still untested.
    -
    - * bins_del.c:
    - new_root() was missing its comment.
    -
    - * super.c, trans.c, hfs_fs_i.h, inode.c, inode_dbl.c, inode_nat.c,
    - file_nat.c, hfs_btree.h, hfs_fs.h, file.c, file_dbl.c, dir_dbl.c,
    - dir_nat.c, extent.c, dir.c, dir_cap.c, bitops.c, bnode.c, brec.c,
    - bfind.c, bins_del.c, bitmap.c, balloc.c:
    - Fixed lines over 80 characters and tabified files.
    -
    - * bins_del.c:
    - Fixed line(s) over 80 columns.
    -
    - * trans.c, inode_nat.c, string.c, super.c, inode.c, inode_cap.c,
    - inode_dbl.c, hfs_fs_i.h, hfs_fs_sb.h, hfs_btree.h, hfs_fs.h, file.c,
    - file_cap.c, file_dbl.c, file_nat.c, dir_dbl.c, extent.c, btree.c,
    - dir_cap.c, bitops.c, bnode.c, brec.c, bfind.c, bins_del.c, bitmap.c,
    - DOC, README, TODO, balloc.c, CHANGES:
    - About 150 spelling corrections.
    -
    -Sun Apr 7 23:14:28 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * dir_cap.c, dir_dbl.c, dir_nat.c, dir.c:
    - Cleaned-up check for special names in mkdir().
    -
    - * extent.c:
    - More verbose error message.
    -
    - * inode_dbl.c, inode_nat.c, hfs_fs_i.h, inode.c, inode_cap.c, dir.c,
    - hfs_fs.h:
    - Limit directories to 32767 entries, since Mac uses 16-bit integer.
    -
    -Fri Apr 5 07:27:57 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * FAQ:
    - Initial version.
    -
    - * dir_dbl.c, dir_nat.c, bins_del.c, dir.c, dir_cap.c:
    - Added missing function comments.
    -
    -Wed Apr 3 06:38:36 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * brec.c:
    - Cleaned-up code for brec->flags.
    -
    - * extent.c:
    - Added function comments.
    -
    - * bins_del.c:
    - Added function comments.
    - hfs_binsert() was incrementing record count even on failure.
    -
    -Mon Apr 1 08:35:51 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * extent.c:
    - Rewrote find_ext() and new_extent() for new hfs_btree_extend().
    - Moved hfs_btree_extend() to balloc.c
    - Fixed potential kernel OOPS in new_extent().
    -
    - * brec.c:
    - Fixed potential kernel OOPS in hfs_brec_get_root().
    - Removed hfs_brec_find_first().
    - Fixed return value of hfs_brec_find().
    -
    - * bins_del.c:
    - Updated call to hfs_btree_extend().
    -
    - * balloc.c:
    - Merged hfs_bnode_add() and hfs_btree_extend() into the later.
    - Commented init_mapnode().
    -
    - * bfind.c:
    - Removed hfs_bfind_first().
    -
    - * hfs_fs.h, hfs_btree.h:
    - Updated prototypes.
    -
    -Sat Mar 30 22:56:47 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * CHANGES, README, TODO:
    - Updated documentation in preparation for 0.6 release.
    -
    - * inode.c, hfs_fs.h:
    - Got rid of HFS_FAKE_EXEC in favor of noexec mount option.
    -
    - * inode.c, super.c, DOC, hfs_fs_sb.h:
    - Added "quiet" mount option, like the fat filesystem.
    -
    - * inode.c, dir_cap.c, dir_nat.c:
    - Pseudo-directories are read-only (at least for now).
    -
    - * hfs_fs.h, dir_dbl.c, dir_nat.c, dir.c, dir_cap.c:
    - mkdir() updated to check against reserved names, but the
    - AppleDouble scheme still has problems with names starting with '%'.
    -
    - * dir_dbl.c, dir_nat.c, hfs_fs.h, dir.c, dir_cap.c:
    - Added mkdir(). (It only took 2 tries to get it right!!)
    - Only works in "normal" directories and doesn't yet stop
    - one from creating dirs with the reserved names.
    -
    - * brec.c, extent.c, bins_del.c:
    - Now have a way to get an EEXIST back from hfs_binsert().
    -
    - * btree.c, inode.c, hfs_fs_i.h, file.c, bfind.c, bnode.c, balloc.c:
    - Added 'dev' field to struct hfs_file.
    -
    - * hfs_fs_i.h, inode.c, btree.c, extent.c, file.c, bnode.c, brec.c,
    - balloc.c:
    - Removed duplicated fields from struct hfs_file since
    - even B*-trees now have that information in the inode.
    -
    - * extent.c:
    - zero_blocks() neglected allocation block size in computing start.
    -
    -Fri Mar 29 16:04:37 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * super.c:
    - hfs_statfs(): f_files and f_ffree fields are now -1, which is
    - documented as the value for "undefined" fields in struct statfs.
    -
    - * trans.c, inode_nat.c, string.c, super.c, inode_dbl.c, inode_cap.c,
    - inode.c, file_nat.c, file_dbl.c, file_cap.c, file.c, dir_dbl.c,
    - extent.c, dir_cap.c, catalog.c, btree.c, brec.c, bnode.c, bitops.c,
    - bitmap.c, bins_del.c, balloc.c:
    - Stylistic editing: {} for all 'for', 'while' and 'if' blocks.
    - I hope I didn't screw-up anything.
    -
    - * hfs_fs.h, dir.c, dir_cap.c, dir_dbl.c, dir_nat.c:
    - Added creation of normal files to all three fork schemes!
    - Strange things may happen when trying to create "non-normal" files.
    -
    - * brec.c:
    - Cleaned up some debugging code.
    -
    - * hfs_fs_i.h:
    - File and directory counts could have overflown 16-bit integer.
    -
    - * hfs_btree.h:
    - Added HFS_BREC_RIGHT to help fix insertion problem.
    -
    - * extent.c:
    - Various fixes to hfs_{file,btree}_extend().
    -
    - * catalog.c:
    - Made hfs_build_cat_key() more "correct".
    -
    - * btree.c:
    - Added and fixed debugging code.
    -
    - * brec.c:
    - Fixed overflow detection.
    - Added some debugging code.
    -
    - * bnode.c:
    - Dirtied some buffers in places that might have been missed.
    - Fixed some debugging code that had broken.
    -
    - * bitops.c:
    - hfs_count_free_bits() was running off end of bitmap.
    -
    - * bins_del.c:
    - Fixed various bugs, mostly related to variable-length keys.
    -
    - * balloc.c:
    - Had forgotten to set a bit in new mapnodes.
    - Node counts were overflowing 16-bit integers.
    -
    - * bitmap.c:
    - Oops! clear/set did opposite operation on full words.
    -
    -Wed Mar 27 10:59:07 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * hfs_fs_i.h:
    - Updated struct hfs_extent for concurrent access.
    - Also caused a slight modification to struct hfs_file.
    -
    - * hfs_fs.h, hfs_btree.h:
    - Added/updated prototypes.
    -
    - * balloc.c:
    - hfs_bnode_alloc() finished but still untested.
    -
    - * bins_del.c:
    - Fixed up deadlock avoidance in hfs_binsert() again.
    - Perhaps I even got it right this time.
    -
    - * extent.c:
    - hfs_file_extend() now safe under concurrent operations?
    -
    - * file.c:
    - hfs_getblk() now safe under concurrent operations?
    -
    -Tue Mar 26 23:26:35 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * btree.c:
    - Added call to hfs_extent_trim() to fix memory leak.
    -
    - * extent.c:
    - Oops, had left a "#define static" in from debugging.
    -
    - * bins_del.c:
    - hfs_binsert() rewritten to avoid deadlock when extending
    - the extents B*-tree.
    -
    - * btree.c:
    - Moved hfs_btree_extend() to extent.c
    -
    - * inode_nat.c, inode_cap.c, inode_dbl.c:
    - hfs_*_put_inode() rewritten to call hfs_extent_trim().
    -
    - * extent.c:
    - Big rewrite for new struct hfs_extent:
    - Now keep linked list of extents.
    - Cache is now a pointer to a list element.
    - Now have 'end' field to aid decode_extent().
    - New functions:
    - hfs_extent_trim(): frees linked list.
    - hfs_btree_extend(): for extending B*-trees.
    - Improved debugging output.
    -
    - * balloc.c:
    - Added hfs_bnode_add() (incomplete and uncommented).
    -
    - * btree.c:
    - Moved some work from hfs_btree_extend() to hfs_bnode_add().
    -
    - * bfind.c:
    - Added hfs_bfind_first() as wrapper for hfs_brec_find_first().
    -
    - * brec.c:
    - Added hfs_brec_find_first() to search first leaf node.
    -
    - * bins_del.c:
    - Added error returns to hfs_binsert() and binsert().
    -
    - * bins_del.c:
    - Check to see that we really need ancestors before starting.
    - Check that hfs_btree_alloc() gave us enough nodes.
    - binsert() uses info precomputed by hfs_binsert().
    -
    -Mon Mar 25 11:33:53 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * bnode.c:
    - Collected together the error returns in hfs_bnode_lock().
    -
    - * Makefile:
    - Added ChangeLog to $(MISC).
    -
    -Wed Mar 20 19:41:45 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * super.c, hfs_fs.h, file.c, dir_dbl.c, dir_nat.c, dir.c, dir_cap.c:
    - Removed support for kernels older than about 1.3.70
    - Most of that support had been broken recently anyway.
    -
    - * super.c:
    - Fixed so DEBUG_MEM works w/o DEBUG_ALL.
    - Updated call to hfs_btree_init().
    -
    - * hfs_fs.h:
    - Updated/added prototypes.
    -
    - * hfs_btree.h:
    - HFS_BFIND_CHAIN removed.
    - struct hfs_brec gets new 'flags' field with bits:
    - HFS_BREC_{FIRST,OVERFLOW,UNDERFLOW,UNINITIALIZED}
    - Removed bitmap size constants.
    - Changes to struct hfs_btree:
    - 'file' and 'cache' now structs rather than pointers.
    - Added 'reserved' field (used during insertion).
    - Added pointers to size and extent in MDB.
    -
    - * file.c:
    - Made hfs_getblk() public.
    - Removed (fil->inode == NULL) special cases.
    -
    - * extent.c:
    - {find,update}_ext() are no longer inline.
    - new_extent() fails when called for the extents tree;
    - previously it would hanging calling hfs_binsert().
    - extend_file():
    - renamed to hfs_file_extend() and made public.
    - fixed to work for B*-trees.
    - zeros-out blocks as they are allocated.
    - fixed bugs for (allocation block) != (physical block).
    -
    - * btree.c:
    - hfs_btree_{init,free}() modified for changes to struct:
    - 'file' and 'cache' moved back into structure
    - file.inode initialized to reduce special cases
    - hfs_btree_init() gets pointer to size in MDB instead of size.
    - Added hfs_btree_extend() (incomplete and uncommented).
    -
    - * bnode.c:
    - hfs_bnode_{alloc,free}() moved to separate file.
    - Removed 'const' from some function arguments
    - due to change in struct hfs_btree.
    - hfs_bnode_lock(): added WRITE/RESRV->READ transition.
    -
    - * brec.c:
    - hfs_brec_get_{root,child}() now take a 'keep_mask' argument
    - indicating when to keep ancestor nodes, and store
    - information about why ancestors were kept.
    - HFS_BFIND_CHAIN eliminated in favor of HFS_BFIND_{INSERT,DELETE}
    - which are now implemented using 'keep_mask'.
    - Added hfs_brec_relse_one() that doesn't release ancestors.
    -
    - * bins_del.c:
    - Lots of rewrites to cleanup insertion.
    - Now tries to extend tree before insertion starts.
    - binsert() iterative rather than recursive.
    - No point in keeping track as it is still not "stable".
    -
    - * balloc.c:
    - New file: started with hfs_bnode_{free,alloc}()
    - Added hfs_bnode_init() to initialize a newly allocated bnode.
    - hfs_bnode_free():
    - Renamed hfs_bnode_bitop().
    - Can set or clear a specified bit.
    - Gets bitmap sizes from nodes directly.
    - hfs_bnode_alloc():
    - Returns actual node, calling hfs_bnode_init().
    - Gets bitmap sizes from nodes directly.
    -
    - * bfind.c:
    - Removed obsolete comment from hfs_bsucc()
    - Removed 'const' from tree arg of hfs_bfind()
    - due to changes in struct hfs_btree.
    -
    - * Makefile:
    - Added new file: balloc.c
    -
    -Sat Mar 9 22:03:53 1996 Paul H. Hargrove <hargrove@sccm.stanford.edu>
    -
    - * Start of detailed CVS logging.
    -
    -Mar 09, 1996: snapshot-09Mar96 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - NOT AN OFFICIAL RELEASE
    - Fixed up debugging code that was broken by split of btree.c
    - Added debugging kmalloc/kfree
    - Fixed memory leak in hfs_bnode_relse()
    -
    -Mar 08, 1996: snapshot-08Mar96 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - NOT AN OFFICIAL RELEASE
    - now reset blocksize on device when done.
    - hfs_binsert done (except for the full tree case).
    - btree.c split up into manageable pieces (need to sort out hfs_btree.h)
    -
    -Feb 26, 1996: snapshot-26Feb96 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - NOT AN OFFICIAL RELEASE
    - Some writability.
    - Bug with multiple opens of meta data fixed.
    - Netatalk support no longer considered experimental.
    -
    -Virtually everything has changed, so I've lost track here.
    -
    -Nov 16, 1995: snapshot-16Nov95 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - NOT AN OFFICIAL RELEASE
    - Still more comments.
    - btree.c back to 80 columns. will do same to other files soon.
    - Starting with btree.c have begun to put file contents into some
    - sort of standard order.
    - Moved metadata reading to VFS open() routine and now free it in
    - the VFS release() routine. Much cleaner than the old way.
    - Unified hfs_iget by shifting scheme-dependent code into a function
    - pointer in the superblock. This could/should be shifted to
    - a VFS read_inode() routine if that can be done cleanly.
    - Probably lots of other changes; I've lost track.
    -
    -Nov 05, 1995: version 0.5.3 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - NOT AN OFFICIAL RELEASE
    - 1.2.x compatibility removed
    - Added lots of comments to btree.c and cleanup some code. The result
    - is that the source file doubled in size while the object
    - file dropped in size by 20%.
    - Added some comments to super.c and dir.c as well.
    - Cleaned up some stuff in dir.c adding some additional error checking
    - and moving closer to using a unified hfs_iget by migrating
    - common code into lookup_parent().
    - Changed btree.c to use a separate bnode cache per filesystem.
    - Renamed a bunch of the bnode functions in btree.c
    -
    -Jun 29, 1995: version 0.5.2 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - BUG FIX and 1.3.x-compatibility release.
    - Will compile under 1.2.x or 1.3.x by changing one line in Makefile.
    - Started adding magic numbers to structures for "safety".
    - Don't strip internal symbols when linking or loading, as this made
    - good bug reports rather difficult.
    - Fixed a bug that could cause the fs to lock-up after trying to open
    - a non-existent file.
    - Fixed a bug that allowed files to appear truncated, when in fact it
    - is still not possible to truncate a file.
    - Added more/better comments to header files.
    - Deal with volume and b-tree bitmaps in preparation for writing.
    - Fixed readdir() to deal properly with the case where the directory
    - changes while writing to user-space. (which can't yet
    - actually happen, until directories are writable).
    -
    -Jun 23, 1995: version 0.5.1 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - BUG FIX RELEASE
    - Removed two debugging messages that didn't belong.
    - Fixed a typo that prevented modified inodes from being written to disk.
    - Added a missing line which prevented rmmod'ing sometimes.
    - Added a missing line which caused errors when modifying .finderinfo or
    - .resource under the CAP system.
    - Added a notify_change() to keep mode bits sensible, and to cause
    - changes to an inode to affect the data fork and resource fork
    - of a file together.
    -
    -Jun 22, 1995: version 0.5 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - Fixed a bug that was giving wrong values for i_blocks
    - Partly writable (can only 'touch' existing files, so far)
    - Removed case= mount option. It will be back eventually.
    - Can now deal with CDROMs (and hard disks?), many thanks to
    - Holger Schemel for this work.
    - Latin-1 filename conversion also due to Holger Schemel.
    - Rewritten btree operations.
    -
    -Feb 28, 1995: version 0.4 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - Requires Linux >= 1.1.94: depends on changes made to asm/byteorder.h
    - Now using string comparison code donated by ARDI (see string.c)
    - Code reorganized to use data structures more like ARDI's.
    - More code reorganization to abstract the btree operations.
    - Added the fork= mount option.
    - Added AppleDouble support. Executor, from ARDI, can now run programs
    - from HFS filesystems mounted with the HFS module.
    -
    -Jan 28, 1995: version 0.3 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - Major code reorganization.
    - Known for certain to work ONLY on floppies.
    - Started caching extents, so got faster on long file reads.
    - Now compiles separate from kernel tree.
    - Supports 5 filename conversion methods.
    - Supports forks, using the method from CAP.
    - All external symbols now start with HFS_ or hfs_
    -
    -Jan 12, 1995: version 0.2 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - Should now work on all HFS volumes, but still only tested on floppies.
    - Got smaller and faster with some code reorganization.
    - Since Linus moved htons() and friends to an asm file, should now be
    - truly endian-independent, but still only tested on Intel machines.
    - Requires Linux >= 1.1.77, since Linus moved htons().
    -
    -Jan 05, 1995: version 0.1 hargrove@sccm.stanford.edu (Paul H. Hargrove)
    - First release.
    - 1.44Mb floppies only
    - no resource forks
    - trivial name mangling only
    - read only
    - for Linux >= 1.1.75
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Zwane Mwaikambo: "RE: [PATCH] 2.6.1-mm2: Get irq_vector size right for generic subarch UP installer kernels"

    Relevant Pages

    • Re: Better way to force a rebuild
      ... On Sun, 14 Dec 2008, Steven Rostedt wrote: ... just compile the kernel with CONFIG_FUNCTION_TRACER ...
      (Linux-Kernel)
    • (no subject)
      ... Sun has a very detailed "System Test and Performance Regression Test ... directly into kernel space; Solaris changed a kernel ... >of the 8_Recommended patch set. ...
      (SunManagers)
    • SUMMARY: bad patches
      ... Sun has a very detailed "System Test and Performance Regression Test ... directly into kernel space; Solaris changed a kernel ... >of the 8_Recommended patch set. ...
      (SunManagers)
    • Re: 2.6.9-rc2-mm2
      ... Copyright 2002 Sun Microsystems, Inc. ... PROMLIB: Sun IEEE Boot Prom 3.2.30 2002/10/25 14:03 ... Remapping the kernel... ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: Problem with patched 2.4.20 kernel
      ... On Sun, 2003-11-02 at 15:39, Cam Ellison wrote: ... > kernel, it will not compile, giving this message: ... 2.4.21/22 kernel source. ...
      (Debian-User)