Re: [RFC PATCH] getting misc stats/attributes via xattr API

From: Miklos Szeredi
Date: Wed May 04 2022 - 03:18:34 EST


On Wed, 4 May 2022 at 00:43, Dave Chinner <david@xxxxxxxxxxxxx> wrote:

> "values" is a very generic name - probably should end up being
> something more descriptive of the functionality is provides,
> especially if the header file is going to be dumped in
> include/linux/. I don't really have a good suggestion at the moment,
> though.

The obvious ones are stat and attr, which are taken already. Info is
probably too generic as well.

Ideas are welcome.

>
> ....
>
> > +
> > +enum {
> > + VAL_MNT_INFO,
> > +};
> > +
> > +static struct val_desc val_mnt_group[] = {
> > + { VD_NAME("info"), .idx = VAL_MNT_INFO },
> > + { }
> > +};
> ....
> > +
> > +
> > +static struct val_desc val_toplevel_group[] = {
> > + { VD_NAME("mnt:"), .get = val_mnt_get, },
> > + { VD_NAME("mntns:"), .get = val_mntns_get, },
> > + { },
> > +};
>
> I know this is an early POC, my main question is how do you
> envisiage this table driven structure being extended down from just
> the mount into the filesystem so we can expose filesystem specific
> information that isn't covered by generic interfaces like statx?

I was thinking of adding a i_op callback. The details are a bit
fuzzy, since the vfs and the fs would have to work together when
listing the attributes and possibly also when retrieving the attribute
itself (think mount options).

Thanks,
Miklos