xfs
[Top] [All Lists]

Re: [RFC][PATCH] VFS interface for extended attributes

To: Alexander Viro <viro@xxxxxxxxxxxx>, Andi Kleen <ak@xxxxxxx>, Andreas Gruenbacher <ag@xxxxxxxxxxx>, Linus Torvalds <torvalds@xxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-xfs@xxxxxxxxxxx
Subject: Re: [RFC][PATCH] VFS interface for extended attributes
From: Nathan Scott <nathans@xxxxxxx>
Date: Fri, 16 Nov 2001 10:18:00 +1100
In-reply-to: <20011114230134.A5739@lynx.no>; from adilger@turbolabs.com on Wed, Nov 14, 2001 at 11:01:34PM -0700
References: <Pine.LNX.4.21.0111121152410.14344-100000@moses.parsec.at> <Pine.GSO.4.21.0111121207530.21825-100000@weyl.math.psu.edu> <20011113062711.A1912@wotan.suse.de> <20011115160853.N588010@wobbly.melbourne.sgi.com> <20011114230134.A5739@lynx.no>
Sender: owner-linux-xfs@xxxxxxxxxxx
User-agent: Mutt/1.2.5i
hi Andreas,

On Wed, Nov 14, 2001 at 11:01:34PM -0700, Andreas Dilger wrote:
> On Nov 15, 2001  16:08 +1100, Nathan Scott wrote:
> 
> > +   int (*create) (struct inode *, char *, void *, size_t);
> > +   int (*replace) (struct inode *, char *, void *, size_t);
> > +   int (*set) (struct inode *, char *, void *, size_t);
> 
> What is the distinction between "set" and "replace" or "set" and "create"?
> 

+#define EA_CREATE   0x0001  /* Set the value: fail if attr already exists */
+#define EA_REPLACE  0x0002  /* Set the value: fail if attr does not exist */

Whereas "set" is simply set the named attribute value, creating the
attribute if need be, replacing the value if the attribute exists,
and then return success.

The man pages on AndreasG's site go into more detail, but decribe
the original interface which Al didn't like.  I haven't created an
updated man page yet, because I'm still not sure if this interface
is quite what Al was looking for either... (Al?)

> ... why are there not just
> flags to distinguish the two, but also separate VFS operations?

A VFS flags parameter could allow an individual filesystem to extend
the semantics of the set operation in new ways by adding new flags -
I think Al wanted to avoid the possibility of that ever happening,
which seems fair enough.

cheers.

-- 
Nathan


<Prev in Thread] Current Thread [Next in Thread>