From: David Howells <dhowells@redhat.com>
To: Neil Brown <neilb@suse.de>
Cc: dhowells@redhat.com,
Linus Torvalds <torvalds@linux-foundation.org>,
Jan Engelhardt <jengelh@medozas.de>,
Jeremy Allison <jra@samba.org>,
Volker.Lendecke@sernet.de, linux-cifs@vger.kernel.org,
linux-nfs@vger.kernel.org, samba-technical@lists.samba.org,
linux-kernel@vger.kernel.org, viro@zeniv.linux.org.uk,
linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org
Subject: Re: [PATCH 02/18] xstat: Add a pair of system calls to make extended file stats available [ver #6]
Date: Wed, 28 Jul 2010 18:28:02 +0100 [thread overview]
Message-ID: <13591.1280338082@redhat.com> (raw)
In-Reply-To: <20100728111525.355a2bd3@notabene>
Neil Brown <neilb@suse.de> wrote:
> ctime and mtime have real cache-coherence semantics which require them being
> updated by the kernel (whether the cache is on an NFS client, in a backup
> archive, or in a .o translation of a .c file).
So does creation time, at least for CIFS caching. Creation time has potential
for spotting when the object at a pathname has changed for something else,
given the lack of inode number and inode generation from windows servers.
Creation time gives us one more datum to use.
> The only role the kernel might have would be setting the 'creation time' when
> the file was created, but it seems even that isn't always what is wanted,
> because people don't so much what the time of create of the
> container-on-disk, but the time of creation of the data-content.
That should be a timestamp in the content itself, not a filesystem metadata
timestamp.
> I would want to see a pretty convincing use-case that cannot be solved with
> xattrs before 'creation time' was added to a generic kernel interface.
Then there's no point even considering this. You could emulate the entirety
of stat() with getxattr(). I've previously posted a patch to implement the
retrieval of creation time, inode gen and data version as xattrs and been told
that it's the wrong way to do it and I should extend stat instead.
> So just use xattrs and don't involve the kernel in any detailed knowledge of
> this value.
Why not? BSD has it in its stat struct. Windows has it in its Win32
equivalents. Samba for one will look for it there, and use it if it is.
Using an xattr means an extra pathwalk and extra locking per access for any
program that wants it. It's a reasonable bet such a program will also be
stat'ing the file it wants the creation time for.
If we are going to extend stat anyway, then why not make out a short list of
extra things we could usefully return and consider adding them? Something
like creation time is reasonably easy to come by for little extra overhead.
Ext4, for example, retains a copy of it in RAM in its inode struct.
> Maybe xstat should take a list of xattrs to be retrieved as well?? or maybe
> not.
The idea of xstat() having a variable-length buffer and variable arguments has
been well derided. It ain't going to happen, much though I'd like it to. I'd
quite like to offer the opportunity to return the security label, for example.
David
next prev parent reply other threads:[~2010-07-28 17:28 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-15 2:17 [PATCH 00/18] Extended file stat functions [ver #6] David Howells
2010-07-15 2:17 ` [PATCH 01/18] Mark arguments to certain syscalls as being const " David Howells
2010-07-15 2:17 ` [PATCH 02/18] xstat: Add a pair of system calls to make extended file stats available " David Howells
2010-07-15 20:35 ` Arnd Bergmann
[not found] ` <201007152235.22373.arnd-r2nGTMty4D4@public.gmane.org>
2010-07-15 21:53 ` David Howells
2010-07-16 10:24 ` David Howells
[not found] ` <8527.1279275842-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-16 11:02 ` Arnd Bergmann
[not found] ` <201007161302.35775.arnd-r2nGTMty4D4@public.gmane.org>
2010-07-16 12:38 ` David Howells
[not found] ` <10677.1279283886-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-16 13:32 ` Arnd Bergmann
2010-07-17 5:51 ` Mark Harris
2010-07-17 9:00 ` Arnd Bergmann
[not found] ` <20100717055130.GA2053-EJgEOVOPJGBzbRFIqnYvSA@public.gmane.org>
2010-07-17 9:49 ` David Howells
[not found] ` <30646.1279230807-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-16 10:46 ` Arnd Bergmann
[not found] ` <201007161246.15923.arnd-r2nGTMty4D4@public.gmane.org>
2010-07-16 15:10 ` David Howells
[not found] ` <20100715021712.5544.44845.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2010-07-16 6:22 ` Mark Harris
2010-07-18 8:48 ` Christoph Hellwig
2010-07-22 10:52 ` Jan Engelhardt
[not found] ` <alpine.LSU.2.01.1007221248050.9353-SHaQjdQMGhDmsUXKMKRlFA@public.gmane.org>
2010-07-22 12:25 ` David Howells
2010-07-22 10:35 ` Jan Engelhardt
2010-07-19 14:05 ` David Howells
2010-07-19 15:17 ` Linus Torvalds
[not found] ` <AANLkTikuzYqYpGHcubb7QVciZW0dNFjOG82qIwy5M4gO-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-19 16:15 ` David Howells
[not found] ` <10783.1279556132-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-19 16:51 ` Linus Torvalds
[not found] ` <AANLkTinVns77R7yCCh-lydd0eQufdAF9O2OaWmCL7uSn-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-19 17:26 ` David Howells
[not found] ` <11817.1279560400-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-19 17:46 ` Linus Torvalds
[not found] ` <AANLkTikxHJgguNn6EOK6fX53xYSRPmcNjIeGSTigQ9qu-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-20 8:28 ` Andreas Dilger
2010-07-22 12:14 ` David Howells
2010-07-22 12:17 ` Volker Lendecke
[not found] ` <E1Obuiy-00C9jr-Al-dqLtpHMqGvUyWpdLl23E4A@public.gmane.org>
2010-07-22 13:05 ` Jan Engelhardt
2010-07-22 15:14 ` Linus Torvalds
[not found] ` <AANLkTikBCXK6uEwWq4f0LvpdoKCPs3jvyFa4Zw4e2J_7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-22 15:36 ` Volker Lendecke
2010-07-22 15:47 ` Linus Torvalds
[not found] ` <AANLkTimwIq0pBhCeOjOVjB0yeM3JHOvzVoj9M4ui6al9-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-22 16:06 ` Greg Freemyer
[not found] ` <AANLkTimsjARdMfnvFRSyy6gakCtVhGRBbyauVTc_Cuwt-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-22 16:07 ` Greg Freemyer
2010-07-22 16:27 ` Jeremy Allison
2010-07-22 16:40 ` Linus Torvalds
[not found] ` <AANLkTimdFCGSKLn7aGMpBMIauHTsHY7hpAAmpo6uTcnD-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-22 16:58 ` Trond Myklebust
[not found] ` <1279817930.3621.14.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2010-07-22 18:02 ` Jeremy Allison
2010-07-22 18:04 ` Volker Lendecke
[not found] ` <E1Oc08W-00CZuz-Ns-dqLtpHMqGvUyWpdLl23E4A@public.gmane.org>
2010-07-22 18:07 ` Jeremy Allison
2010-07-22 18:59 ` Trond Myklebust
2010-07-30 17:55 ` Phil Pishioneri
2010-07-30 18:11 ` Trond Myklebust
2010-07-30 18:19 ` Phil Pishioneri
[not found] ` <1280513506.12852.22.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2010-07-31 18:41 ` Andreas Dilger
[not found] ` <09B770A6-48DB-4296-B6C2-BF46D4DC7E57-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org>
2010-07-31 18:48 ` Jan Engelhardt
2010-07-31 19:03 ` Trond Myklebust
2010-07-31 21:20 ` Jan Engelhardt
2010-08-01 13:17 ` Jeff Layton
2010-07-22 18:05 ` Jan Engelhardt
[not found] ` <alpine.LSU.2.01.1007222004430.4215-SHaQjdQMGhDmsUXKMKRlFA@public.gmane.org>
2010-07-22 18:07 ` Jeremy Allison
2010-07-22 19:18 ` John Stoffel
2010-07-22 17:03 ` Jan Engelhardt
2010-07-22 17:16 ` Trond Myklebust
[not found] ` <1279818967.3621.23.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2010-07-22 17:36 ` Jan Engelhardt
[not found] ` <alpine.LSU.2.01.1007221859180.27496-SHaQjdQMGhDmsUXKMKRlFA@public.gmane.org>
2010-07-22 17:24 ` Linus Torvalds
[not found] ` <AANLkTilmVdyVdO4EmVtTYi_cvMmPqNEPEnzUkJdk1XyR-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-07-22 18:15 ` Jeremy Allison
2010-07-22 18:41 ` Greg Freemyer
2010-07-22 18:21 ` Benny Halevy
2010-07-22 18:45 ` Greg Freemyer
2010-07-22 19:53 ` Benny Halevy
2010-07-28 1:15 ` Neil Brown
2010-07-28 17:28 ` David Howells [this message]
2010-07-28 23:04 ` Neil Brown
2010-07-30 18:38 ` J. Bruce Fields
2010-08-01 13:40 ` Jeff Layton
2010-08-02 14:09 ` Greg Freemyer
[not found] ` <AANLkTi=JvwrwpmteFcXW1f5s95+_w_iCT+04Sy7bbTtR-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-08-02 14:42 ` Jeff Layton
2010-07-29 16:15 ` David Howells
[not found] ` <319.1280420115-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-08-03 1:13 ` Neil Brown
2010-07-22 17:12 ` Jim Rees
2010-07-22 17:32 ` Linus Torvalds
2010-07-23 1:03 ` tridge
[not found] ` <19528.60019.28495.655512-eUNUBHrolfbYtjvyW6yDsg@public.gmane.org>
2010-07-23 1:21 ` Ted Ts'o
[not found] ` <20100723012130.GD16373-AKGzg7BKzIDYtjvyW6yDsg@public.gmane.org>
2010-07-23 2:12 ` tridge-eUNUBHrolfbYtjvyW6yDsg
2010-07-23 9:14 ` Björn Jacke
2010-07-22 16:25 ` Jan Engelhardt
2010-07-22 15:46 ` Jan Engelhardt
[not found] ` <alpine.LSU.2.01.1007221740570.12308-SHaQjdQMGhDmsUXKMKRlFA@public.gmane.org>
2010-07-22 16:06 ` David Howells
2010-07-15 2:17 ` [PATCH 03/18] AFS: Use i_generation not i_version for the vnode uniquifier " David Howells
2010-07-15 2:17 ` [PATCH 04/18] xstat: AFS: Return extended attributes " David Howells
2010-07-15 2:17 ` [PATCH 05/18] xstat: eCryptFS: " David Howells
2010-07-15 2:17 ` [PATCH 06/18] xstat: Ext4: " David Howells
2010-07-15 2:17 ` [PATCH 07/18] xstat: NFS: " David Howells
2010-07-15 2:17 ` [PATCH 08/18] xstat: CIFS: " David Howells
2010-07-15 2:17 ` [PATCH 09/18] xstat: Make special system filesystems return FS_SPECIAL_FL " David Howells
2010-07-18 8:49 ` Christoph Hellwig
2010-07-19 14:09 ` David Howells
[not found] ` <8426.1279548573-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2010-07-27 13:41 ` David Howells
2010-07-15 2:17 ` [PATCH 10/18] xstat: Make network filesystems return FS_REMOTE_FL " David Howells
2010-07-15 2:17 ` [PATCH 11/18] xstat: Make automounter filesystems return FS_AUTOMOUNT_FL " David Howells
2010-07-15 2:17 ` [PATCH 12/18] xstat: Add a dentry op to handle automounting rather than abusing follow_link() " David Howells
[not found] ` <20100715021723.5544.85730.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2010-07-18 8:50 ` Christoph Hellwig
[not found] ` <20100718085048.GC27794-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2010-07-19 14:10 ` David Howells
2010-07-15 2:17 ` [PATCH 13/18] xstat: AFS: Use d_automount() " David Howells
2010-07-15 2:17 ` [PATCH 14/18] xstat: NFS: " David Howells
2010-07-15 2:17 ` [PATCH 15/18] xstat: CIFS: " David Howells
2010-07-15 2:17 ` [PATCH 16/18] xstat: Remove the automount through follow_link() kludge code from pathwalk " David Howells
2010-07-15 2:17 ` [PATCH 17/18] xstat: Add an AT_NO_AUTOMOUNT flag to suppress terminal automount " David Howells
[not found] ` <20100715021709.5544.64506.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2010-07-15 2:17 ` [PATCH 18/18] xstat: Provide a mechanism to gather extra results for [f]xstat() " David Howells
[not found] ` <20100715021730.5544.68442.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2010-07-18 8:51 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=13591.1280338082@redhat.com \
--to=dhowells@redhat.com \
--cc=Volker.Lendecke@sernet.de \
--cc=jengelh@medozas.de \
--cc=jra@samba.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@suse.de \
--cc=samba-technical@lists.samba.org \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).