kern/85503: panic: wrong dirclust using msdosfs in RELENG_6

From: Dmitry Pryanishnikov (dmitry_at_atlantis.dp.ua)
Date: 09/01/05

  • Next message: Bruce Evans: "Re: kern/85503: panic: wrong dirclust using msdosfs in RELENG_6"
    Date: Thu, 1 Sep 2005 11:56:06 +0300 (EEST)
    To: freebsd-arch@freebsd.org
    
    

    Hello!

      During the hunting the bug kern/85503 (panic: wrong dirclust in msdosfs)
    I've tried to think about the solution, but it seems to be
    architecture-related. The problem is: msdosfs uses pseudo-inodes (that is,
    the offset from the start of the partition to the start of directory entry
    in bytes) which must therefore have off_t bitness (at least 64 bits). I've
    found the primary error (lack of casts leaded to 32-bit result), but then
    we should transfer this 64-bit "inode" number to vfs_hash_get(). Oops,
    it also limited to u_int (32 bits on i386). Finally, I see that the
    primary shortcoming here: in sys/vnode.h we have

             /*
              * vfs_hash: (mount + inode) -> vnode hash.
              */
             LIST_ENTRY(vnode) v_hashlist;
             u_int v_hash;

    I think it's feasible and useful to upgrade type of v_hash to at least off_t.
    In our days of large media we will face filesystems with more than 4 billions
    files (and thus at least 64-bit inode numbers) quite often. Am I right?

    Sincerely, Dmitry

    -- 
    Atlantis ISP, System Administrator
    e-mail:  dmitry@atlantis.dp.ua
    nic-hdl: LYNX-RIPE
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
    

  • Next message: Bruce Evans: "Re: kern/85503: panic: wrong dirclust using msdosfs in RELENG_6"

    Relevant Pages

    • Re: kern/85503: panic: wrong dirclust using msdosfs in RELENG_6
      ... with unrepresentable inode numbers. ... the inode number is essentially the byte offset divided by ... work to use the cluster offset of the file for the fake inode number. ... entries to hard links is perfectly wrong. ...
      (freebsd-arch)
    • Re: Empty a file attached to a process
      ... Assuming that the program is fairly normal, the offset will start off at zero, ... > servers, even though the configuration is common. ... The number is known as the inode number, and is an index into the inode ... Thats because 'vi' opens the file and reads it from the start, ...
      (comp.unix.shell)
    • Block to i-node to file name (was Re: uncorrectable disk error)
      ... Calculate the partition-relative offset of the block ... to determine the inode that is holding this block. ... From "man fsdb": ... Find the inodeowning the specified disk blocknumber. ...
      (freebsd-questions)
    • Re: Empty a file attached to a process
      ... Let me tell you first, I did not understand what you meant by offset, this ... logs also controlled by Weblogic. ... Also, Weblogic can send the stdout to a log if so configured, or, on the ... > The number is known as the inode number, and is an index into the inode ...
      (comp.unix.shell)
    • Re: re:how does the kernel write only part of the entire block?
      ... > offset the kernel can get the correct physical block number from this ... > file's inode according the algorithm. ... > direct blocks in inode and 8k maximum size each one. ... The inode pointers don't map to data, ...
      (comp.unix.solaris)