On Thursday 07 February 2008 09:32:22 Christoph Hellwig wrote:
> This also introduces the same ACL caching all other Linux filesystems do
> by adding pointers to the acl and default acl in struct xfs_inode.
> It'll probably need some benchmarking to find out whether bloating the
> inode is worth it.
I guess it all depends on the workload.
> It should be possible to use the generic code without this caching by
> revamping the code a little, although no other filesystem currently does
> that.
The options for doing that would be (a) basically what xfs does now, i.e.,
perform the permission checks directly in the on-disk data, or (b) construct
struct posix_acl objects temporarily for each access. Option (b) doesn't look
very appealing to me.
> + * XXX(hch): the tag is 32 bits on disk and 16 bits in core.
> + * Any special handling required??
> + */
> + acl_e->e_tag = be32_to_cpu(ace->ae_tag);
> + acl_e->e_perm = be16_to_cpu(ace->ae_perm);
I would check for zero upper bits on disk.
Thanks,
Andreas
|