Re: [PATCH 1/6] statx: Add a system call to make enhanced file info available

From: Christoph Hellwig
Date: Thu May 12 2016 - 05:12:55 EST


On Tue, May 10, 2016 at 09:43:43AM +0100, David Howells wrote:
> Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>
> > All of these are easily available. But why special case them so that
> > userspace must not ask for them? This makes an otherwise totally
> > regular interface special now. Note that filesystems could always fill
> > it out anyway and set it in the return mask.
>
> Because it would be a waste of bits in the mask. Is there a point in having
> bits that are always going to be set unconditionally when we can just
> *document* that these few fields are always going to be set.

And what exaxtly is the cost of these bits?

> So yes, you can look on it as there are special cases. However, if I can drop
> stat emulation support, everything resolves down to the following classes:
>
> (1) Stuff that's unconditional: st_dev, st_blksize, st_information (maybe).
>
> (2) st_mode & S_IFMT. Unconditional or conditional? I'm not sure.
>
> (3) Stuff that's conditional: st_mode & ~S_IFMT, st_rdev, st_ino, ...
> Basically everything else.

If we at least go down to one set of conditional and one optional that's
at least much better than what we currently have.