2003-02-20 12:44:28

by Andreas Gruenbacher

[permalink] [raw]
Subject: [RFC/PATCH] ACLs over NFS: Necessary changes in the core NFS code

Hello,

I have implemented Sun's NFS ACL protocol, which is an extension to
NFSv3 that allows to manipulate POSIX ACLs over NFS mounts. Before that
can be integrated a few changes to the NFS/RPC layer are needed:

* The NFS ACL protocol binds to the same port as the NFS protocol. The
kernel NFS doesn't yet support multiple RPC programs on the same port.

* The RPC client does not properly report missing program/procedure
information to its caller.

* Particularly for the NFS ACL protocol, the -ENOTSUPP and -ENOPNOTSUPP
errors are not converted into NFS errors.

The attached patch implements these missing bits.

I am not certain about how to best handle the clnt->cl_xprt transport
endpoints: The patch uses a reference count in struct rpc_xprt to keep
track of how many clients are using a certain endpoint. This is the
least intrusive change; it may make more sense to handle this
explicitly in the RPC clients. What do you think?

(The attached patch is against 2.5.62; this and a 2.4.21pre4 patch can
be found at <http://www.suse.de/~agruen/acl/nfs/>.)

Cheers,
Andreas.


Attachments:
nfs-multiple-programs.diff (4.64 kB)