From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S263107AbUARTDm (ORCPT ); Sun, 18 Jan 2004 14:03:42 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262965AbUARTDm (ORCPT ); Sun, 18 Jan 2004 14:03:42 -0500 Received: from hermes.fachschaften.tu-muenchen.de ([129.187.202.12]:39361 "HELO hermes.fachschaften.tu-muenchen.de") by vger.kernel.org with SMTP id S263107AbUARTB6 convert rfc822-to-8bit (ORCPT ); Sun, 18 Jan 2004 14:01:58 -0500 Date: Sun, 18 Jan 2004 20:01:48 +0100 From: Adrian Bunk To: oliver@neukum.org, hargrove@sccm.Stanford.EDU Cc: linux-kernel@vger.kernel.org Subject: [2.6 patch] remove two obsolete HFS docs Message-ID: <20040118190147.GE12027@fs.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: 8BIT User-Agent: Mutt/1.4.1i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org I can't judge about the other docs under fs/hfs/ , but the INSTALL.txt and Changelog there are definitely too outdated to be useful for anyone. The patch below removes them. diffstat output: fs/hfs/ChangeLog | 2506 --------------------------------------------- fs/hfs/INSTALL.txt | 124 -- 2 files changed, 2630 deletions(-) Please apply Adrian --- linux-2.6.1-mm4/fs/hfs/INSTALL.txt 2004-01-09 07:59:27.000000000 +0100 +++ /dev/null 2003-12-19 23:47:26.000000000 +0100 @@ -1,124 +0,0 @@ - Installation instructions for the HFS Filesystem for Linux - Paul H. Hargrove, hargrove@sccm.Stanford.EDU - version 0.95 28 Apr 1997 - - This document explains how to compile and install version 0.95 of - hfs_fs, the HFS filesystem for Linux. - - 11.. SSyysstteemm RReeqquuiirreemmeennttss - - You will need the following to compile and use this release of hfs_fs: - - +o Kernel version 2.0.1 or newer compiled with modules enabled - (CONFIG_MODULES). - - +o The kernel sources (or at least the header files) available online. - - +o The module utilities package current for your kernel version and an - understanding of how to use it. - - 22.. IInnssttaallllaattiioonn - - This release of the HFS filesystem is not part of the official kernel - distribution. Therefore, it is compiled as a module and then loaded - into the kernel using the module utilities. Therefore, your kernel - must be compiled with CONFIG_MODULES enabled. - - 22..11.. CCoommppiilliinngg tthhee llooaaddaabbllee mmoodduullee - - To compile hfs.o you should only need to execute ``make'' in the - hfs_fs source directory. - - If gcc complains about not finding a large number of header files with - names beginning with ``linux/'' then you probably don't have the - kernel header files installed correctly. Either /usr/include/linux, - /usr/include/asm and /usr/include/scsi should be symbolic links to - include/linux, include/asm and include/scsi in the kernel source tree - for the kernel you wish to use hfs_fs with, or else they should be - directories containing the header files for the kernel you wish to use - hfs_fs with. - - If gcc complains about not finding linux/version.h, then you will need - to run ``make dep'' in the kernel source directory to build it. Under - MkLinux, run ``make include/linux/version.h'' instead. - - If gcc complains about not finding the files linux/config.h or - linux/autoconf.h, then you will need to run ``make config'' and ``make - dep'' in the kernel source directory to build these two files. - - If you are compiling on a DEC Alpha and receive messages saying - assignment from incompatible pointer type when compiling files dir_*.c - and file_*.c, then you need to change a single line in the file - linux/hfs_fs.h. Remove the text ``&& !defined(__alpha__)'' from the - end of line 217. - - 22..22.. IInnssttaalllliinngg tthhee mmoodduullee iinn tthhee mmoodduulleess ddiirreeccttoorryy ((ooppttiioonnaall)) - - If you plan to use kerneld to automatically load the module or if you - wish to use modprobe or insmod without supplying a complete path to - hfs.o, then you will need to copy hfs.o into a directory where the - module utilities expect to find it. - - The proper directory may depend slightly on your configuration. - However, /lib/modules/default/fs/ is a common one for filesystem - modules. Once hfs.o is in the proper directory you should run depmod - -a to update the dependency list used by kerneld and modprobe. - - 22..33.. LLooaaddiinngg tthhee mmoodduullee iinnttoo tthhee rruunnnniinngg kkeerrnneell - - There are three ways to accomplish this: - - 1. If you are running kerneld and have installed hfs.o in the modules - directory then you don't need to issue any commands; the module - will be loaded when you attempt to mount an HFS filesystem. - - 2. If you are _n_o_t running kerneld then you can load hfs.o manually by - running modprobe hfs.o. If you have not installed hfs.o in one of - the standard module directories, then you will need provide a full - path to the file hfs.o. - - 3. If you have been experiencing kernel crashes with hfs_fs, then you - should file a bug report including the names of the functions which - the EIP and Stack Trace point into. To help with this you can ask - for relocation map for the module when you load it. To do this - load the module with ``insmod -m hfs.o >loadmap''. Again, you may - need a full path to the file hfs.o if you have not placed it in one - of the standard module directories. - - 22..44.. UUssiinngg tthhee mmoodduullee wwiitthh vveerrssiioonneedd ssyymmbboollss - - All the interface between the module and the kernel take place through - very stable (since the mid-1.3.x kernels) parts of the kernel. If you - enabled versioned symbols (CONFIG_MODVERSIONS) when you compiled your - kernel you should often be able to compile this module once and then - use it with many kernels newer than the one you compiled it for. - - In any case, it is unlikely that this module will need changes with - each new kernel patch; simple recompilation should usually suffice. - - 33.. LLeeggaall NNoottiicceess - - 33..11.. TThhiiss DDooccuummeenntt - - This document is Copyright (c) 1996, 1997 by Paul H. Hargrove. - - Permission is granted to make and distribute verbatim copies of this - document provided the copyright notice and this permission notice are - preserved on all copies. - - Permission is granted to copy and distribute modified versions of this - document under the conditions for verbatim copies above, provided a - notice clearly stating that the document is a modified version is also - included in the modified document. - - Permission is granted to copy and distribute translations of this - document into another language, under the conditions specified above - for modified versions. - - Permission is granted to convert this document into another media - under the conditions specified above for modified versions provided - the requirement to acknowledge the source document is fulfilled by - inclusion of an obvious reference to the source document in the new - media. Where there is any doubt as to what defines ``obvious'' the - copyright owner reserves the right to decide. - --- linux-2.6.1-mm4/fs/hfs/ChangeLog 2004-01-09 08:00:02.000000000 +0100 +++ /dev/null 2003-12-19 23:47:26.000000000 +0100 @@ -1,2506 +0,0 @@ -2000-01-02 a sun - - * file.c (hfs_get_block): added hfs_get_block for regular files. - -1999-04-12 a sun - - * file_hdr.c (hdr_read): added rootinfo behaviour for DID header. - -1999-04-11 a sun - - * super.c (parse_options): added s_version so that we can select - between different versions of the same layout. - -1999-04-05 a sun - - * 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 - - * catalog.c (hfs_cat_move): fixed corruption problem with - renames. - -1999-01-27 a sun - - * 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 - - * 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 - - * sysdep.c (hfs_revalidate_dentry): fix inode dates when there's a - timezone change. - -1998-12-15 root - - * 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 - - * 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 - - * 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 - - * mdb.c (hfs_mdb_get): plugged up an mdb failed initialization - leak. - -1998-10-31 a sun - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * mdb.c: altered mdb struct to reflect hfs plus usage. - -1998-08-27 a sun - - * file.c, file_hdr.c, file_cap.c: dealt with the remaining - copy_to/from_user() error cases. - -1998-08-26 a sun - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * version.c, README.sgml: - Bump version to 0.8.3. - -Mon Apr 7 20:09:56 1997 Paul H. Hargrove - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * part_tbl.c: - Clean up the error checking code a bit. - -Sat Mar 22 19:43:40 1997 Paul H. Hargrove - - * 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 - - * hfs_sysdep.h: - Don't include until after . - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * README.sgml: - Fix silly grammatical error. - -Fri Sep 6 09:17:12 1996 Paul H. Hargrove - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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= 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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