Re: [PATCH] in-core AFS multiplexor and PAG support

David Howells
2003-05-13T16:45:41Z

> AFS is annoying and painful no matter how you look at it. :/
>
> But I don't think 90+ new syscalls is the answer, even for 2.7.

I think it's going to be either

(1) try to maintain compatibility with OpenAFS and Arla's current syscall
setup

(2) totally rewrite the interface and tell OpenAFS/Arla they have to change
too.

In the case of (2), I think the AFS operations would best be emulated by a
combination of the following means:

(1) Use the setpag() syscall in my patch.

(2) Add syscalls for managing tokens on a general filesystem-by-filesystem
basis (only need four ops: set, get, delete and clear-all). These could
work through operations in struct file_system_type.

(3) Work through sysfs files for fs-specific control functions. Things like
adding cells would come into this category.

(4) Emulate as much as many of the inode-requiring pioctl calls as possible
with xattr syscalls.

However, this leaves at least one that doesn't fit into any of the above
categories. VIOC_STAT_MT_PT takes an inode, and so should come into (4) except
that the xattr key size isn't sufficiently capacious.

There are two ways to deal with this:

(1) Add an actual pioctl syscall as a top-level syscall and make it either
call a pioctl method in inode_operations or maybe have it fake a dentry
and file and call file_operations->ioctl.

(2) Open the directory holding the mountpoint and make an ioctl that aims at
the mountpoint in question.

David