public inbox for linux-nfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5][v3][RFC] NFSv3: implement extended attribute protocol (XATTR)
@ 2010-02-26  4:33 James Morris
  2010-02-26  4:34 ` [PATCH 1/5] NFSv3: convert client to generic xattr API James Morris
                   ` (5 more replies)
  0 siblings, 6 replies; 32+ messages in thread
From: James Morris @ 2010-02-26  4:33 UTC (permalink / raw)
  To: linux-nfs
  Cc: linux-security-module, Trond Myklebust, J. Bruce Fields,
	Neil Brown

This is version 3 of the NFSv3 XATTR protocol extension patches, which 
I've previously posted:

v1: http://thread.gmane.org/gmane.linux.file-systems/35475
v2: http://thread.gmane.org/gmane.linux.nfs/30539

The main change in this version is the addition of support for storing 
xattrs in a local namespace on the server, following feedback from Trond.

The wire protocol and client view is unchanged.  The server now stores all 
xattrs received via the XATTR protocol in a special namespace: user._nfsd.  
This allows arbitrary xattrs to be manipulated by clients, with the server 
providing xattr storage only, and no interpretation of the xattrs.

For example, if the client sets an xattr named "user.icon", it will be 
transferred as such to the server via the XATTR protocol, and the server 
will store it locally as "user._nfsd.user.icon".

This is entirely transparent to the user and works similarly getxattr(2) 
and removexattr(2).  The server filters listxattr(2) to only return xattr 
names with this prefix (with the prefix stripped).

e.g. when the client calls getxattr(2) for "user.icon", this is translated 
at the server to "user._nfsd.user.icon", and the associated value 
is returned to the client.

The changes for this are in the last patch in the set (which also includes 
a bugfix), so they can be reviewed separately.

I chose the user._nfsd namespace, rather than, say, a system. namespace, 
because filesystems which support xattrs tend already have a generalized 
user. xattr handler.  If we don't use user., then new xattr handlers will 
need to be implemented for each backing fs.

An assumption is made that the server is under administrative control, and 
that end users do not have local access to the exported filesystems.

The '_nfsd' component of the namespace could be made a per-export 
configuration value (as also discussed with Trond), although I've kept 
things as simple as possible at this stage.

Note that only the user. and trusted. namespaces are supported on the 
client at this stage (except for system.posix_acl*, which is handled by 
the NFS_ACL protocol).  This is also keep things initially simple, as 
we'll need to make SELinux and possibly other security/system xattr users 
aware of the NFS_XATTR protocol, but aside from that, it should be 
possible to extend this scheme to arbitrary client xattr namespaces.

Please review and comment.


- James
-- 
James Morris
<jmorris@namei.org>

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2010-03-17 21:23 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-26  4:33 [PATCH 0/5][v3][RFC] NFSv3: implement extended attribute protocol (XATTR) James Morris
2010-02-26  4:34 ` [PATCH 1/5] NFSv3: convert client to generic xattr API James Morris
2010-02-26  4:35 ` [PATCH 2/5] NFSv3: add xattr API config option for client James Morris
     [not found] ` <alpine.LRH.2.00.1002261457420.25193-CK9fWmtY32x9JUWOpEiw7w@public.gmane.org>
2010-02-26  4:36   ` Subject: [PATCH 3/5] NFSv3: add client implementation of XATTR protocol James Morris
2010-02-26  4:36 ` [PATCH 4/5] NFSv3: add server " James Morris
2010-02-26  4:37 ` [PATCH 5/5] NFSv3: Add server namespace support for XATTR protocol implementation James Morris
2010-02-26 13:46   ` Stephen Smalley
2010-03-01  0:49     ` Casey Schaufler
2010-03-01  1:17       ` Trond Myklebust
2010-03-01  8:09         ` James Morris
2010-03-08 10:42 ` [PATCH 0/6][v4][RFC] NFSv3: implement extended attribute protocol (XATTR) James Morris
2010-03-08 10:43   ` [PATCH 1/6] NFSv3: convert client to generic xattr API James Morris
     [not found]   ` <alpine.LRH.2.00.1003082122340.6314-CK9fWmtY32x9JUWOpEiw7w@public.gmane.org>
2010-03-08 10:43     ` [PATCH 2/6] NFSv3: add xattr API config option for client James Morris
2010-03-08 10:47     ` [PATCH 6/6] NFSv3: Add server namespace support for XATTR protocol implementation James Morris
2010-03-08 10:44   ` [PATCH 3/6] NFSv3: add client implementation of XATTR protocol James Morris
2010-03-08 10:45   ` [PATCH 4/6] NFSv3: add server " James Morris
2010-03-08 10:46   ` [PATCH 5/6] xattr: add new top level nfsd namespace and implement ext3 support James Morris
2010-03-09  3:59   ` [PATCH 0/6][v4][RFC] NFSv3: implement extended attribute protocol (XATTR) Brad Boyer
2010-03-09  5:49     ` Casey Schaufler
2010-03-09  7:04       ` Brad Boyer
2010-03-09 19:35         ` Jamie Lokier
2010-03-10  3:46           ` Casey Schaufler
2010-03-15  3:19             ` Jamie Lokier
2010-03-15  4:42               ` Casey Schaufler
2010-03-15 14:28                 ` Jamie Lokier
2010-03-15 23:28                   ` Casey Schaufler
2010-03-15 23:49                     ` Trond Myklebust
2010-03-16  2:31                       ` Casey Schaufler
2010-03-17 20:13       ` Eric Paris
2010-03-17 21:23         ` Casey Schaufler
2010-03-09  8:13     ` James Morris
2010-03-13  7:28       ` Brad Boyer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox