Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932979AbcKQRDr (ORCPT ); Thu, 17 Nov 2016 12:03:47 -0500 Received: from mx1.redhat.com ([209.132.183.28]:58690 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933717AbcKQRDm (ORCPT ); Thu, 17 Nov 2016 12:03:42 -0500 Organization: Red Hat UK Ltd. Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SI4 1TE, United Kingdom. Registered in England and Wales under Company Registration No. 3798903 From: David Howells In-Reply-To: <20161117143904.4ae757b4@lxorguk.ukuu.org.uk> References: <20161117143904.4ae757b4@lxorguk.ukuu.org.uk> <147938969703.13574.10295364502230379833.stgit@warthog.procyon.org.uk> To: One Thousand Gnomes Cc: dhowells@redhat.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [RFC][PATCH 0/4] Enhanced file stat system call MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <15515.1479401145.1@warthog.procyon.org.uk> Date: Thu, 17 Nov 2016 16:45:45 +0000 Message-ID: <15516.1479401145@warthog.procyon.org.uk> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Thu, 17 Nov 2016 16:45:48 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2358 Lines: 55 One Thousand Gnomes wrote: > > (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) Perhaps, though adding 6-argument syscalls is apparently frowned upon. > > 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() ? Yes. > The cover note could be clearer on this. Fixed. > 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. It depends. Doing so leaves 16 bytes of hole in the structure. I could ameliorate the wastage by using a union to overlay useful fields in the gaps, but that's pretty icky and might be compiler dependent. > 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. There's a FILE_ATTRIBUTE_TEMPORARY that I could map for windows filesystems that could be used with this. > Remote needs to have clear semantics: is ext4fs over nbd 'remote' for > example ? Hmmm... Interesting question. Probably should. But you could be insane and RAID an nbd and a local disk. Further, does NFS over a loopback device to nfsd on the same machine qualify as root? What if that's exposing a local fs on NBD? Perhaps I should drop 'REMOTE' for now. It sounds like something that a GUI filemanager might find interesting, though. David