On Thursday 10 October 2002 20:34, Christoph Hellwig wrote:
> [...]
> > diff -Nru a/include/linux/fs.h b/include/linux/fs.h
> > --- a/include/linux/fs.h Wed Oct 9 23:53:33 2002
> > +++ b/include/linux/fs.h Wed Oct 9 23:53:33 2002
> > @@ -770,6 +770,9 @@
> > unsigned long (*get_unmapped_area)(struct file *, unsigned long,
> > unsigned long, unsigned long, unsigned long); };
> >
> > +/* posix_acl.h */
> > +struct posix_acl;
> > +
> > struct inode_operations {
> > int (*create) (struct inode *,struct dentry *,int);
> > struct dentry * (*lookup) (struct inode *,struct dentry *);
> > @@ -791,6 +794,8 @@
> > ssize_t (*getxattr) (struct dentry *, const char *, void *, size_t);
> > ssize_t (*listxattr) (struct dentry *, char *, size_t);
> > int (*removexattr) (struct dentry *, const char *);
> > + struct posix_acl *(*get_posix_acl) (struct inode *, int);
> > + int (*set_posix_acl) (struct inode *, int, struct posix_acl *);
>
> Either you make all setting/retrieving of ACLs go through this interface or
> just rip it. We don't need more than one way to fiddle with ACLs.
This is an open design problem. Going through the xattr interface is too slow
for the nfs_permission_mode hack (which if enabled masks off permissions
before sending them to old clients to be on the safe side). On the other
hand, always going through the inode operations is also quirky as we would
need to dispatch xattr names and decode values both in the VFS and in the FS.
A clean solution to this would be very welcome.
> Also they should take dentries.
They will once permission() also takes dentries. Before that they can't.
--Andreas.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:38 EST