ChangeLog
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:81k
- 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 ' ' 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