| 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 |