Linux CIFS filesystem development
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
To: Dave Chinner <david-FqsqvQoI3Ljby3iVrkZq2A@public.gmane.org>
Cc: David Howells <dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	adilger-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org,
	smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org,
	Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org,
	roland-/Z5OmTQCD9xF6kxbq+BtvQ@public.gmane.org,
	linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org,
	linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	libc-alpha-9JcytcrH/bA+uJoB2kUjGw@public.gmane.org
Subject: Re: Extended file stat: Splitting file- and fs-specific info?
Date: Wed, 9 May 2012 07:14:20 -0400	[thread overview]
Message-ID: <20120509111420.GA23636@fieldses.org> (raw)
In-Reply-To: <20120509042532.GO5091@dastard>

On Wed, May 09, 2012 at 02:25:32PM +1000, Dave Chinner wrote:
> On Tue, May 08, 2012 at 09:09:41PM -0400, J. Bruce Fields wrote:
> > On Wed, May 09, 2012 at 10:24:20AM +1000, Dave Chinner wrote:
> > > On Tue, May 08, 2012 at 09:19:42PM +0100, David Howells wrote:
> > > > 
> > > > Should I split the file-specific info and the fs-specific info and make the
> > > > second optional?  What I'm thinking of is something like this:
> > > > 
> > > > Have a file information structure:
> > > > 
> > > > struct statx {
> > > > 	/* 0x00 */
> > > > 	uint32_t	st_mask;	/* What results were written */
> > > > 	uint32_t	st_information;	/* Information about the file */
> > > > 	uint16_t	st_mode;	/* File mode */
> > > > 	uint16_t	__spare0[3];
> > > > 	/* 0x10 */
> > > > 	uint32_t	st_uid;		/* User ID of owner */
> > > > 	uint32_t	st_gid;		/* Group ID of owner */
> > > > 	uint32_t	st_nlink;	/* Number of hard links */
> > > > 	uint32_t	st_blksize;	/* Optimal size for filesystem I/O */
> > > > 	/* 0x20 */
> > > > 	struct statx_dev st_rdev;	/* Device ID of special file */
> > > > 	struct statx_dev st_dev;	/* ID of device containing file */
> > > > 	/* 0x30 */
> > > > 	int32_t		st_atime_ns;	/* Last access time (ns part) */
> > > > 	int32_t		st_btime_ns;	/* File creation time (ns part) */
> > > > 	int32_t		st_ctime_ns;	/* Last attribute change time (ns part) */
> > > > 	int32_t		st_mtime_ns;	/* Last data modification time (ns part) */
> > > > 	/* 0x40 */
> > > > 	int64_t		st_atime;	/* Last access time */
> > > > 	int64_t		st_btime;	/* File creation time */
> > > > 	int64_t		st_ctime;	/* Last attribute change time */
> > > > 	int64_t		st_mtime;	/* Last data modification time */
> > > > 	/* 0x60 */
> > > > 	uint64_t	st_ino;		/* Inode number */
> > > > 	uint64_t	st_size;	/* File size */
> > > > 	uint64_t	st_blocks;	/* Number of 512-byte blocks allocated */
> > > > 	uint64_t	st_gen;		/* Inode generation number */
> > > 
> > > I don't think we want to expose the inode generation numbers. It is
> > > trivial to construct NFS file handles (usually just fsid, inode
> > > number and generation) with that information and hence bypass
> > > security checks to access files.
> > 
> > I'm not convinced there's much value in trying to keep filehandles
> > secret.
> 
> Sure, but I can't really see any good reason to expose filesystem
> internal implementation details like this - a generation number is
> usually used to differentiate between inode life cycles which
> userspace has no concept of and is different for every filesystem,
> so it's behaviour and values are not going to be consistent across
> filesystems.

That's OK.  The only requirement would be that the (inode number, inode
generation) pair be different for different inodes on the same
filesystem.

> Some filesystems might not even have a generation
> number they can export, and that makes me wonder if there is any
> good reason for exposing it at all.

That's true of a number of these new attributes.

> If you need to discriminate between versions of files with the same
> name, then use name_to_handle_at() and compare filehandles....

Sure.

Since the only use case given for this has been constructing
filehandles, and since we already have an interface for that, I don't
feel particularly strongly about this.

--b.

  reply	other threads:[~2012-05-09 11:14 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-19 14:05 [PATCH 0/6] Extended file stat system call David Howells
2012-04-19 14:06 ` [PATCH 3/6] xstat: AFS: Return extended attributes David Howells
2012-04-19 14:06 ` [PATCH 4/6] xstat: NFS: " David Howells
     [not found]   ` <20120419140653.17272.95035.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2012-04-19 14:35     ` Myklebust, Trond
2012-04-26 13:52       ` David Howells
2012-04-19 14:07 ` [PATCH 5/6] xstat: CIFS: " David Howells
     [not found]   ` <20120419140706.17272.72290.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2012-04-19 15:19     ` Steve French
2012-04-19 16:32 ` [PATCH 0/6] Extended file stat system call Roland McGrath
2012-04-19 21:51   ` Paul Eggert
2012-04-19 23:05     ` Roland McGrath
2012-04-26 14:16       ` David Howells
     [not found]         ` <20173.1335449760-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 18:22           ` Roland McGrath
2012-04-26 13:54   ` David Howells
     [not found]     ` <19184.1335448455-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 18:25       ` Roland McGrath
2012-04-27 23:54         ` Paul Eggert
     [not found]     ` <20120426182524.E5ADF2C0EC-j1d2VQoJOwwHfwO+Tb3JRVaTQe2KTcn/@public.gmane.org>
2012-04-26 21:54       ` David Howells
     [not found]         ` <9931.1335477281-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 22:02           ` Roland McGrath
2012-04-26 22:21             ` Nix
     [not found]   ` <4F9088D6.9020203-764C0pRuGfqVc3sceRu5cw@public.gmane.org>
2012-04-26 14:04     ` David Howells
     [not found]       ` <19638.1335449047-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 18:24         ` Roland McGrath
2012-04-19 23:29 ` Andreas Dilger
     [not found] ` <20120419140558.17272.74360.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2012-04-19 14:06   ` [PATCH 1/6] xstat: Add a pair of system calls to make extended file stats available David Howells
2012-04-19 23:36     ` Andreas Dilger
2012-04-26 13:32       ` David Howells
     [not found]         ` <18195.1335447156-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-27  0:51           ` Dave Chinner
2012-04-27  3:11             ` Andreas Dilger
     [not found]     ` <20120419140612.17272.57774.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2012-04-24 21:29       ` J. Bruce Fields
     [not found]         ` <20120424212911.GA26073-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-04-24 22:08           ` Steve French
2012-04-26 13:45             ` David Howells
     [not found]               ` <18765.1335447954-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 14:28                 ` J. Bruce Fields
2012-04-26 17:06                   ` Steve French
2012-04-25 14:44           ` Andreas Dilger
2012-04-26 13:40         ` David Howells
     [not found]           ` <18533.1335447617-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 14:23             ` J. Bruce Fields
2012-04-19 14:06   ` [PATCH 2/6] xstat: Ext4: Return extended attributes David Howells
     [not found]     ` <20120419140625.17272.23303.stgit-S6HVgzuS8uM4Awkfq6JHfwNdhmdF6hFW@public.gmane.org>
2012-04-19 16:03       ` Steve French
2012-04-26 13:47         ` David Howells
2012-04-26 17:00           ` Steve French
2012-04-19 14:07   ` [PATCH 6/6] xstat: eCryptFS: " David Howells
2012-04-19 17:11   ` [PATCH 0/6] Extended file stat system call Steve French
2012-04-26 14:25     ` David Howells
2012-04-26 14:54       ` Steve French
     [not found]         ` <CAH2r5mv1Lijdwk5zsQwYJr4Etb6fhrRyNXm-iFCQX+HecboGrQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-26 15:25           ` Myklebust, Trond
2012-04-26 16:56             ` Steve French
     [not found]               ` <CAH2r5mt5af-_hxBRKK72iD5Gr99bo91ec78Rov8EGVEx8=21mA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-26 17:00                 ` Myklebust, Trond
2012-04-26 17:03                   ` Steve French
     [not found]                     ` <CAH2r5mvmCfLrxRHje6Wx5X84zxPEHwRMUJGsjvWBujMu7w841w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-26 17:06                       ` Myklebust, Trond
     [not found]                         ` <1335460011.9701.30.camel-SyLVLa/KEI9HwK5hSS5vWB2eb7JE58TQ@public.gmane.org>
2012-04-26 17:09                           ` Steve French
     [not found]                             ` <CAH2r5muXk+frkFz9X523Ny=RMwJGeqOPH75G1ToNa5QoMo5SkQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-04-26 17:10                               ` Steve French
2012-04-26 21:57                           ` David Howells
     [not found]                             ` <10104.1335477476-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-26 22:05                               ` Roland McGrath
     [not found]                                 ` <20120426220552.D98D62C0D3-j1d2VQoJOwwHfwO+Tb3JRVaTQe2KTcn/@public.gmane.org>
2012-04-27  0:33                                   ` Myklebust, Trond
2012-04-27  0:30                               ` Myklebust, Trond
2012-04-26 15:52         ` David Howells
2012-04-27  0:29           ` Andreas Dilger
     [not found]           ` <3F302713-B675-4BAA-B2B7-235E03C5975F-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org>
2012-04-27  9:19             ` David Howells
2012-04-27  1:06   ` Dave Chinner
2012-04-27  3:22     ` Andreas Dilger
     [not found]       ` <ED5B8F1B-6C99-4516-85FA-A767E94B635F-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org>
2012-04-28  0:38         ` Dave Chinner
2012-04-28  0:54           ` Steve French
2012-04-27  9:39     ` David Howells
     [not found]       ` <4111.1335519545-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-04-27 13:13         ` Dave Chinner
2012-04-27 15:10           ` J. Bruce Fields
     [not found]             ` <20120427151057.GA16580-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2012-04-27 16:32               ` Steve French
2012-04-27 19:31           ` Andreas Dilger
2012-04-28  0:58             ` Dave Chinner
2012-05-10  9:51               ` David Howells
2012-05-08 20:19   ` Extended file stat: Splitting file- and fs-specific info? David Howells
2012-05-08 21:13     ` Myklebust, Trond
     [not found]     ` <16281.1336508382-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-05-09  0:24       ` Dave Chinner
2012-05-09  1:09         ` J. Bruce Fields
2012-05-09  4:25           ` Dave Chinner
2012-05-09 11:14             ` J. Bruce Fields [this message]
2012-05-09  1:16         ` Andreas Dilger
2012-05-10  9:23           ` David Howells
     [not found]             ` <14477.1336641794-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-05-10 16:05               ` Andreas Dilger
2012-05-10 17:10               ` Roland McGrath
2012-05-11  8:54                 ` Andreas Dilger
2012-05-09  9:21         ` David Howells
     [not found]           ` <20170.1336555274-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-05-09 11:19             ` Christoph Hellwig
     [not found]               ` <20120509111958.GA11345-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2012-05-09 11:55                 ` Bernd Schubert
     [not found]                   ` <4FAA5B24.1020306-mPn0NPGs4xGatNDF+KUbs4QuADTiUCJX@public.gmane.org>
2012-05-09 12:05                     ` Christoph Hellwig
     [not found]                       ` <20120509120544.GA17535-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2012-05-09 12:25                         ` Bernd Schubert
2012-05-09 13:51                           ` Andreas Dilger
2012-05-09 14:12                             ` Bernd Schubert
2012-05-10  9:14         ` David Howells

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=20120509111420.GA23636@fieldses.org \
    --to=bfields-uc3wqj2krung9huczpvpmw@public.gmane.org \
    --cc=Trond.Myklebust-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org \
    --cc=adilger-m1MBpc4rdrD3fQ9qLvQP4Q@public.gmane.org \
    --cc=ben-/+tVBieCtBitmTQ+vhA3Yw@public.gmane.org \
    --cc=david-FqsqvQoI3Ljby3iVrkZq2A@public.gmane.org \
    --cc=dhowells-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=libc-alpha-9JcytcrH/bA+uJoB2kUjGw@public.gmane.org \
    --cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=roland-/Z5OmTQCD9xF6kxbq+BtvQ@public.gmane.org \
    --cc=samba-technical-w/Ol4Ecudpl8XjKLYN78aQ@public.gmane.org \
    --cc=smfrench-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /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