NetBSD hammer with fuse and hammerread

Matthew Dillon dillon at apollo.backplane.com
Thu Apr 16 09:24:46 PDT 2009


:
:On Thu, 16 Apr 2009, Jeremy C. Reed wrote:
:
:> Problems:
:> - doesn't have number of links for directory (maybe causes find problem 
:> 	shown below)
:
:I see on a DragonFly system using native hammer and also mounting the test 
:image, the number of links for a directory is always 1 (versus 0 I see 
:when using the fusehammer). On ufs, the links would show the correct 
:amount -- always more than 1 for ufs directories.
:
:Is this documented?

    Probably not.  HAMMER does not maintain a link count in the directory
    inode with regards to the number of directory entries, because it
    would require rewriting the directory inode whenever a directory entry
    is added or remove.  This is a very expensive operation for HAMMER
    (at least as currently implemented) so it just doesn't do it.

:> - doesn't have size of directory (number of blocks used)
:
:On a DragonFly system using native hammer and also mounting the test 
:image, the number of blocks used by the directory is always 0. (Where with 
:ufs it begins at 512.)
:
:Is this behaviour documented? Okay? Known?
:...

    The number of blocks is a faked number for directories.  Actually,
    for files too.  HAMMER doesn't keep track of the actual block
    allocations on a per-inode basis.

    In UFS a directory is an actual file on the media.  In HAMMER a
    directory is *NOT* a file on the media.  So I really have no idea
    what I should report in terms of file size.

    It should be noted that insofar as I know there is no standard that
    requires the directory link count to reflect the number of entries
    in the directory or that the st_size of the directory report anything
    real.

					-Matt
					Matthew Dillon 
					<dillon at backplane.com>





More information about the Hammer mailing list