Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934432AbcKQRxP (ORCPT ); Thu, 17 Nov 2016 12:53:15 -0500 Received: from lxorguk.ukuu.org.uk ([81.2.110.251]:54854 "EHLO lxorguk.ukuu.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933772AbcKQRxM (ORCPT ); Thu, 17 Nov 2016 12:53:12 -0500 Date: Thu, 17 Nov 2016 14:39:04 +0000 From: One Thousand Gnomes To: David Howells Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC][PATCH 0/4] Enhanced file stat system call Message-ID: <20161117143904.4ae757b4@lxorguk.ukuu.org.uk> In-Reply-To: <147938969703.13574.10295364502230379833.stgit@warthog.procyon.org.uk> References: <147938969703.13574.10295364502230379833.stgit@warthog.procyon.org.uk> Organization: Intel Corporation X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.31; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1854 Lines: 42 > (2) Lightweight stat (AT_STATX_DONT_SYNC): Ask for just those details of > interest, and allow a network fs to approximate anything not of > interest, without going to the server. > > (3) Heavyweight stat (AT_STATX_FORCE_SYNC): Force a network fs to flush > buffers and go to the server, even if it thinks its cached attributes > are up to date. That seems an odd way to do it. Wouldn't it be cleaner and more flexible to give a timestamp of the oldest time you consider acceptable (and obviously passing 0 indicates whatever you have) > (4) Allow the filesystem to indicate what it can/cannot provide: A > filesystem can now say it doesn't support a standard stat feature if > that isn't available. > > (5) Make the fields a consistent size on all arches, and make them large. > > (6) Can be extended by using more request flags and using up the padding > space in the statx struct. > > Note that no lstat() equivalent is required as that can be implemented > through statx() with atflag == 0. There is also no fstat() equivalent as > that can be implemented through statx() with filename == NULL and the > relevant fd passed as dfd. and dfd + a name gives you fstatat() ? The cover note could be clearer on this. Should the fields really be split the way they are for times rather than a struct for each one so you can write code generically to handle one of those rather than having to have a 4 way switch statement all the time. Another attribute that would be nice (but migt need some trivial device layer tweaking) would be STATX_ATTR_VOLATILE for filesystems that will probably evaporate on a reboot. That's useful information for tools like installers and also for sanity checking things like backup paths. Remote needs to have clear semantics: is ext4fs over nbd 'remote' for example ? Alan