Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 Dec 2014 18:32:48 -0500 (EST)
From:      Rick Macklem <rmacklem@uoguelph.ca>
To:        FreeBSD Filesystems <freebsd-fs@freebsd.org>,  Kirk McKusick <mckusick@mckusick.com>, Gleb Kurtsou <gleb@freebsd.org>,  Konstantin Belousov <kib@freebsd.org>
Subject:   patch that makes d_fileno 64bits
Message-ID:  <1966344327.2961798.1419723168645.JavaMail.root@uoguelph.ca>

next in thread | raw e-mail | index | archive | help
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



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