From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [RHEL5 PATCH 2/4] VFS: Make inode numbers 64-bits Date: Tue, 15 Aug 2006 02:31:14 +0100 Message-ID: <20060815013114.GS29920@ftp.linux.org.uk> References: <20060814211504.27190.10491.stgit@warthog.cambridge.redhat.com> <20060814211509.27190.51352.stgit@warthog.cambridge.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: torvalds@osdl.org, akpm@osdl.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Return-path: Received: from zeniv.linux.org.uk ([195.92.253.2]:60373 "EHLO ZenIV.linux.org.uk") by vger.kernel.org with ESMTP id S932486AbWHOBbQ (ORCPT ); Mon, 14 Aug 2006 21:31:16 -0400 To: David Howells Content-Disposition: inline In-Reply-To: <20060814211509.27190.51352.stgit@warthog.cambridge.redhat.com> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Mon, Aug 14, 2006 at 10:15:09PM +0100, David Howells wrote: > Make the in-kernel representations of inode number 64-bit in size at a minimum > as some network filesystems (eg: NFS) and local filesystems (eg: XFS) provide > such. > > The 64-bit inode number will be returned through stat64() and getdents64() on > archs that are currently set up to do so. > > This patch changes __kernel_ino_t to be "unsigned long long" on all archs, but > changes usages of that in struct stat to be the old type so that the userspace > interface does not change. The 64-bit division patch is required to get this > to link on some archs. > > struct inode::i_ino and struct kstat::ino have been converted to ino_t. > Neither needs moving within the bounds of its parent structure to make sure > that they reside on a 64-bit boundary if the structure itself does so. NAK. There's no need to touch i_ino and a lot of reasons for not doing that. ->getattr() can fill 64bit field just fine without that and there's zero need to touch every fs out there *and* add cycles on icache lookups. WTF for? Filesystems that want 64bit values in st_ino are welcome to * set it in ->getattr() and * use iget5() Less PITA for everyone and less intrusive patch that way.