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>