linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Jeremy Allison <jra@samba.org>
Cc: Volker.Lendecke@sernet.de, David Howells <dhowells@redhat.com>,
	Jan Engelhardt <jengelh@medozas.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: Thu, 22 Jul 2010 09:40:22 -0700	[thread overview]
Message-ID: <AANLkTimdFCGSKLn7aGMpBMIauHTsHY7hpAAmpo6uTcnD@mail.gmail.com> (raw)
In-Reply-To: <20100722162712.GB10352@jeremy-laptop>

On Thu, Jul 22, 2010 at 9:27 AM, Jeremy Allison <jra@samba.org> wrote:
> On Thu, Jul 22, 2010 at 08:47:46AM -0700, Linus Torvalds wrote:
>> Tell me why we shouldn't just do this right?
>
> No, ctime isn't the same as Windows "create time".

Umm. What kind of reading problems do you guys have?

I know effin well that ctime isn't the same as Windows create time.
THAT WAS MY POINT.

But the fact is, th Unix ctime semantics are insane and largely
useless. There's a damn good reason almost nobody uses ctime under
unix.

So what I'm suggesting is that we have a flag - either per-process or
per-mount - that just says "use windows semantics for ctime".

And yes, I'm very aware that the "c" in ctime doesn't stand for
"create". But anybody who points that out is - once more - totally
missing the point. My point is that we have three timestamps, and
windows wants three timestamps (somebody claims that NTFS has four
timestamps, but the Windows file time access functions certainly only
shows three times, so any potential extra on-disk times have no
relevance because they are invisible to pretty much everybody). We can
have unix semantics for mtime/atime/ctime, or we can have windows
semantics for those three values.

So let's say that we introduce a mount flag that says
"ctime=winctime", which basically just sets a flag that instead of
changing ctime on chmod/chown/etc, it just changes mtime instead (or,
as mentioned, we could make it a process flag instead).

Let's face it, Unix semantics are not sacred.  Especially not
something like ctime, which is pretty damn useless. If you're a samba
server, why not just say "let's do ctime the way windows does creation
times", and let it be at that?

I personally think that Unix ctime is insane. There is no real reason
why "write()" should change mtime, but "chmod" changes ctime. It was
just a random decision way back when, and it's clearly not what samba
wants, and it's equally clearly not what even most _unix_ people want
(just google for "ctime" and "creation time", and watch the confusion
- exactly because unix semantics are simply _random_ and odd semantics
in this area)

I would not be at all surprised if it turns out that people might want
to really turn ctime into creation time (with the mount flag or
whatever) even if they are _not_ running samba.

An added issue is that most filesystems simply don't have more than
three times (and some obviously have not even that, but that's true in
Windows too). So re-using ctime actually means that this scheme would
work a whole lot better than some crazy xstat() interface that doesn't
support common filesystems anyway.

                                         Linus

  reply	other threads:[~2010-07-22 16:48 UTC|newest]

Thread overview: 133+ 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
2010-07-15 21:53   ` David Howells
2010-07-16  6:22     ` Mark Harris
2010-07-16 10:24     ` David Howells
2010-07-16 11:02       ` Arnd Bergmann
2010-07-16 12:38       ` David Howells
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
2010-07-16 10:46     ` Arnd Bergmann
2010-07-16 15:10     ` David Howells
2010-07-18  8:48   ` Christoph Hellwig
2010-07-22 10:52     ` Jan Engelhardt
2010-07-22 12:25     ` David Howells
2010-07-19 14:05   ` David Howells
2010-07-19 15:17   ` Linus Torvalds
2010-07-19 16:15   ` David Howells
2010-07-19 16:51     ` Linus Torvalds
2010-07-19 17:26     ` David Howells
2010-07-19 17:46       ` Linus Torvalds
2010-07-20  8:28         ` Andreas Dilger
2010-07-22 10:35   ` Jan Engelhardt
2010-07-22 12:14   ` David Howells
2010-07-22 12:17     ` Volker Lendecke
2010-07-22 13:05       ` Jan Engelhardt
2010-07-22 15:14       ` Linus Torvalds
2010-07-22 15:36         ` Volker Lendecke
2010-07-22 15:47           ` Linus Torvalds
2010-07-22 16:06             ` Greg Freemyer
2010-07-22 16:07               ` Greg Freemyer
2010-07-22 16:25             ` Jan Engelhardt
2010-07-22 16:27             ` Jeremy Allison
2010-07-22 16:40               ` Linus Torvalds [this message]
2010-07-22 16:58                 ` Trond Myklebust
2010-07-22 18:02                   ` Jeremy Allison
2010-07-22 18:04                     ` Volker Lendecke
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
2010-07-31 18:41                             ` Andreas Dilger
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
2010-07-22 17:36                     ` Jan Engelhardt
2010-07-22 17:24                   ` Linus Torvalds
2010-07-22 18:15                     ` Jeremy Allison
2010-07-22 18:21                     ` Benny Halevy
2010-07-22 18:45                       ` Greg Freemyer
2010-07-22 19:53                         ` Benny Halevy
2010-07-22 18:41                     ` Greg Freemyer
2010-07-28  1:15                     ` Neil Brown
2010-07-28 17:28                     ` David Howells
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
2010-08-02 14:42                             ` Jeff Layton
2010-07-29 16:15                       ` David Howells
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
2010-07-23  1:21                   ` Ted Ts'o
2010-07-23  2:12                     ` tridge
2010-07-23  9:14                     ` Björn Jacke
2010-07-30 21:22                 ` utz lehmann
2010-07-31  8:08                   ` Jan Engelhardt
2010-07-31 14:43                     ` utz lehmann
2010-08-01 13:25                   ` Jeff Layton
2010-08-05 23:52                     ` Jeremy Allison
2010-08-06  3:38                       ` Neil Brown
2010-08-06  3:55                         ` Steve French
2010-08-06 11:18                           ` Jeff Layton
2010-08-06 23:30                           ` Neil Brown
2010-08-06 23:58                             ` Steve French
2010-08-07  0:29                               ` Neil Brown
2010-08-07  2:42                                 ` Steve French
2010-08-07  2:54                                   ` Steve French
2010-08-07  3:32                                     ` Neil Brown
2010-08-07 10:34                                       ` Jeff Layton
2010-08-07 11:04                                         ` Neil Brown
2010-08-08 12:12                         ` Jeremy Allison
2010-08-08 12:53                           ` Jeff Layton
2010-08-08 13:05                             ` Jeremy Allison
2010-08-13 12:54                               ` J. Bruce Fields
2010-08-13 17:54                                 ` Jeremy Allison
2010-08-13 18:09                                   ` Steve French
2010-08-13 19:06                                   ` Jan Engelhardt
2010-08-13 19:19                                     ` Jeremy Allison
2010-08-16 18:04                                       ` J. Bruce Fields
2010-08-16 18:08                                   ` J. Bruce Fields
2010-08-16 19:07                                     ` Jeremy Allison
2010-08-08 23:07                           ` Neil Brown
     [not found]           ` <AANLkTimwIq0pBhCeOjOVjB0y  <1280603032.3125.24.camel@heimdal.trondhjem.org>
     [not found]             ` <1280603032.3125.24.camel-rJ7iovZKK19ZJLDQqaL3InhyD016LWXt@public.gmane.org>
2010-08-01 16:18               ` utz lehmann
2010-07-22 15:46         ` Jan Engelhardt
2010-07-22 16:06         ` David Howells
     [not found]       ` <AANLkTikBCXK6uEw <AANLkTimdFCGSKLn7aGMpBMIauHTsHY7hpAAmpo6uTcnD@mail.gmail.com>
2010-07-31 16:53         ` David Howells
2010-07-31 18:05           ` utz lehmann
2010-07-31 19:26           ` 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
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
2010-07-18  8:50   ` Christoph Hellwig
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=AANLkTimdFCGSKLn7aGMpBMIauHTsHY7hpAAmpo6uTcnD@mail.gmail.com \
    --to=torvalds@linux-foundation.org \
    --cc=Volker.Lendecke@sernet.de \
    --cc=dhowells@redhat.com \
    --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=samba-technical@lists.samba.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).