patch that makes d_fileno 64bits

Kirk McKusick mckusick at mckusick.com
Mon Dec 29 07:02:22 UTC 2014


> Date: Sat, 27 Dec 2014 18:32:48 -0500 (EST)
> From: Rick Macklem <rmacklem at uoguelph.ca>
> To: FreeBSD Filesystems <freebsd-fs at freebsd.org>,
>         Kirk McKusick <mckusick at mckusick.com>, Gleb Kurtsou <gleb at freebsd.org>,
>         Konstantin Belousov <kib at freebsd.org>
> Subject: patch that makes d_fileno 64bits
> 
> Hi,
> 
> Kirk and Gleb Kurtsou (plus some others) are working through
> the difficult job of changing ino_t to 64bits. (Changes to syscalls,
> libraries, etc.)
> 
> This patch:
> http://people.freebsd.org/~rmacklem/64bitfileno.patch
> 
> is somewhat tangential to the above, in that it changes the
> d_fileno field of "struct dirent" and va_fileid to uint64_t.
> It also includes adding a field called d_cookie to "struct dirent",
> which is the position of the next directory entry in the underlying
> file system. A majority of this patch are changes to the NFS code,
> but it includes a simple "new struct dirent"->"old struct dirent32"
> copy routine for getdirentries(2) and small changes to all the
> file systems so they fill in the "new struct dirent".
> 
> This patch can be applied to head/current and the resultant kernel
> should work fine, although I've only been able to test some of the
> file systems. However, DO NOT propagate the changes to sys/sys/dirent.h
> out to userland (/usr/include/sys/dirent.h) and build a userland from
> it or things will get badly broken.
> 
> I don't know if Kirk and/or Gleb will find some of this useful for
> their updates to project/ino64, but it will allow people to test
> these changes. (It modifies the NFS server so that it no longer uses
> the "cookie" args to VOP_READDIR(), but that part can easily
> be removed from the patch.)
> 
> If folks can test this patch, I think it would be helpful for
> the effort of changing ino_t to 64bits.
> 
> Have fun with it, rick

Thanks Rick, this does look useful. Since Gleb is leading the charge
with changing ino_t to 64 bits, I will let him have final say on when
it would be helpful to have this go into HEAD. But it does seem that
it should be possible to do it before the other changes and independently
of them since it only chnges the internal kernel interfaces. But perhaps
I am missing something that Gleb or kib can point out.

It seems to me that the cookies calculation could be taken out of the
VOP_GETDIRENTRIES interface since NFS is the only client of it.

In looking through your patch, I did not see anything that looked wrong.
But as you point out, more testing is needed :-)

	Kirk McKusick


More information about the freebsd-fs mailing list