📄 changelog
字号:
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 fo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -