cvs commit: src/sys/conf files src/sbin/hammer cmd_show.c cycle.c hammer_util.h ondisk.c src/sbin/newfs_hammer newfs_hammer.c src/sys/vfs/hammer hammer.h hammer_btree.c hammer_btree.h hammer_cursor.c hammer_cursor.h hammer_disk.h hammer_inode.c ...

Matthew Dillon dillon at
Mon May 12 14:19:31 PDT 2008

dillon      2008/05/12 14:17:18 PDT

DragonFly src repository

  Modified files:
    sys/conf             files 
    sbin/hammer          cmd_show.c cycle.c hammer_util.h ondisk.c 
    sbin/newfs_hammer    newfs_hammer.c 
    sys/vfs/hammer       hammer.h hammer_btree.c hammer_btree.h 
                         hammer_cursor.c hammer_cursor.h 
                         hammer_disk.h hammer_inode.c 
                         hammer_ioctl.c hammer_object.c 
                         hammer_ondisk.c hammer_reblock.c 
                         hammer_subs.c hammer_vnops.c 
  Added files:
    sys/vfs/hammer       hammer_prune.c 
  HAMMER 43/Many: Remove records from the media format, plus other stuff
  * Get rid of hammer_record_ondisk.  As HAMMER has evolved the need for
    a separate record structure has devolved into trivialities.  Originally
    the idea was to have B-Tree nodes referencing records and data.  The
    B-Tree elements were originally intended to be throw-away and the on-media
    records were originally intended to be the official representation of
    the data and contained additional meta-information such as the obj_id
    of a directory entry and a few additional fields related to the inode.
    But once the UNDO code went in and it became obvious that the B-Tree needed
    to be tracked (undo-wise) along with everything else, the need for an
    official representation of the record as a separate media structure
    essentially disappeared.
    Move the directory-record meta-data into the directory-entry data and move
    the inode-record meta-data into the inode-record data.  As a single
    exception move the atime field to the B-Tree element itself (it replaces
    what used to be the record offset), in order to continue to allow atime
    updates to occur without requiring record rewrites.  With these changes
    records are no longer needed at all, so remove the on-media record structure
    and all the related code.
  * The removal of the on-media record structure also greatly improves
  * B-Tree elements are now the official on-media record.
  * Fix a race in the extraction of the root of the B-Tree.
  * Clean up the in-memory record handling API.  Instead of having to
    construct B-Tree leaf elements we can simply embed one in the in-memory
    record structure (struct hammer_record), and in the inode.
  Revision  Changes    Path
  1.216     +1 -0      src/sys/conf/files
  1.9       +9 -34     src/sbin/hammer/cmd_show.c
  1.2       +1 -1      src/sbin/hammer/cycle.c
  1.15      +3 -2      src/sbin/hammer/hammer_util.h
  1.19      +12 -20    src/sbin/hammer/ondisk.c
  1.25      +24 -29    src/sbin/newfs_hammer/newfs_hammer.c
  1.64      +12 -67    src/sys/vfs/hammer/hammer.h
  1.46      +18 -41    src/sys/vfs/hammer/hammer_btree.c
  1.14      +6 -4      src/sys/vfs/hammer/hammer_btree.h
  1.25      +12 -1     src/sys/vfs/hammer/hammer_cursor.c
  1.18      +4 -2      src/sys/vfs/hammer/hammer_cursor.h
  1.32      +45 -132   src/sys/vfs/hammer/hammer_disk.h
  1.55      +64 -72    src/sys/vfs/hammer/hammer_inode.c
  1.17      +2 -321    src/sys/vfs/hammer/hammer_ioctl.c
  1.57      +125 -274  src/sys/vfs/hammer/hammer_object.c
  1.42      +5 -2      src/sys/vfs/hammer/hammer_ondisk.c
  1.14      +1 -109    src/sys/vfs/hammer/hammer_reblock.c
  1.19      +0 -10     src/sys/vfs/hammer/hammer_subs.c
  1.52      +79 -83    src/sys/vfs/hammer/hammer_vnops.c

More information about the Commits mailing list