From owner-freebsd-fs@FreeBSD.ORG Sat Dec 27 23:32:56 2014 Return-Path: Delivered-To: freebsd-fs@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 632E8F0A; Sat, 27 Dec 2014 23:32:56 +0000 (UTC) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 08FABEDA; Sat, 27 Dec 2014 23:32:55 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApkGAIdAn1SDaFve/2dsb2JhbABcFoNCWAEDgwHDYYVzgR8BAQEBAX2ENgSBBwINGQJfAYg+Da8ZlHsBAQEBBgEBAQEBARyBIY4igyOBQQWJS4JjhSaGcYUugnyHaSKEDCAygUR+AQEB X-IronPort-AV: E=Sophos;i="5.07,653,1413259200"; d="scan'208";a="179638411" Received: from muskoka.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.222]) by esa-jnhn.mail.uoguelph.ca with ESMTP; 27 Dec 2014 18:32:49 -0500 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id A94DCB3F2B; Sat, 27 Dec 2014 18:32:48 -0500 (EST) Date: Sat, 27 Dec 2014 18:32:48 -0500 (EST) From: Rick Macklem To: FreeBSD Filesystems , Kirk McKusick , Gleb Kurtsou , Konstantin Belousov Message-ID: <1966344327.2961798.1419723168645.JavaMail.root@uoguelph.ca> Subject: patch that makes d_fileno 64bits MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.95.10] X-Mailer: Zimbra 7.2.6_GA_2926 (ZimbraWebClient - FF3.0 (Win)/7.2.6_GA_2926) X-BeenThere: freebsd-fs@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Filesystems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 27 Dec 2014 23:32:56 -0000 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