Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 Aug 2009 15:45:06 -0500
From:      "Rick C. Petty" <rick-freebsd2008@kiwi-computer.com>
To:        bossic@ngs.ru
Cc:        freebsd-fs@FreeBSD.org
Subject:   Re: 64-bit inodes
Message-ID:  <20090831204506.GA6464@keira.kiwi-computer.com>
In-Reply-To: <448086815.20090901031952@ngs.ru>
References:  <1287213639.20090831194947@ngs.ru> <20090831184045.GA5846@keira.kiwi-computer.com> <448086815.20090901031952@ngs.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 01, 2009 at 03:19:52AM +0700, bossic@ngs.ru wrote:
> > On Mon, Aug 31, 2009 at 07:49:47PM +0700, bossic@ngs.ru wrote:
> >> Good time of day!
> >> I have a question about 64-bit inodes. Some software (for example
> >> glusterfs http://www.gluster.org/) don't work on operation systems this
> >> type of inodes support
> >> without. Will FreeBSD support 64-bit inodes? And when expect it?
> 
> > UFS2 uses 64-bit block numbers and 64-bit times.  Not sure about ZFS, but I
> > know it supports at least 64-bit block pointers.  I'm not exactly sure what
> > you mean by "support 64-bit inodes".  Certainly FreeBSD supports
> > filesystems that use 64-bit pointers and timestamps.
> 
> Hi! I need to work the packet glusterfs. But I have next: "Distribute
> translator: uses 64bit inode numbers, as FreeBSD doesn't support 64bit
> inodes. Distribute is seen to not work on FreeBSD" on
> http://www.gluster.org/docs/index.php/Whats_New_v2.0 and
> http://www.mavetju.org/weblog/html/00262.html . What can I do? This
> packet working on Linux, but have "core dumped" on FreeBSD. There is
> not big problem to debug it for me, but definition of bug is lower
> hands me.

[CC'd to the list for additional comments]

Okay, you're not talking about the block pointers or timestamps.  You're
talking about the inode number:

% grep ino_t /usr/include/sys/_types.h
typedef	__uint32_t	__ino_t;	/* inode number */

Apparently FreeBSD expects that you cannot have around 4.2 billion inodes
on any given filesystem.  That seems reasonable.

Changing from uint32 to uint64 would require a complete rebuild and would
introduce considerable ABI breakage.  If you're building FreeBSD (and all
of the ports you need) yourself, and you don't need binary compatibility,
you could probably change this yourself and things would just work.

As for convincing the FreeBSD core team to make this change (e.g. for 9.0),
I suspect you may see some push back.  I'm not even sure how you would make
everything ABI compatible.  This is yet another reason why embedding ABI
version numbers everywhere would help.  I think there would have to be a
number of duplicate system calls to handle the different inode sizes in any
structures passed between the kernel and userland, like stat(2).

-- Rick C. Petty



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090831204506.GA6464>