Re: [PATCH] add a stub by which a module can bind to the AFS syscall

David Howells (dhowells@warthog.cambridge.redhat.com)
Wed, 30 Apr 2003 16:30:20 +0100


I selected a variadic method of argument passing because I didn't want to have
to copy the argument block several times in the course of passing from the
syscall stub through the multiplexor to the actual handler.

Of course, it might be better if the kernel itself sorted out the individual
subcalls and passed them to the filesystem individually or dealt with them
itself.

The four calls implemented by Linux are:

(*) int setpag(void)

Set Process Authentication Group number. This could easily be moved into
the kernel proper, with the PAG being stored in or depending from the
task structure somehow.

This would then obviate the need for OpenAFS to mangle the setgroups and
getgroups syscalls.

(*) int pioctl(const char *path, int cmd, void *arg, int followsymlink)

Al Viro's favourite:-) Do ioctl() on a file refered to by pathname. Can't
be emulated by open/ioctl/close because:

(a) it can operate directly on symbolic links.

(b) some of its functions don't require a file and don't fail if one
can't be opened.

(*) int afs_call(...)

Local client control

(*) int afs_icl(...)

Local client status and logging control.

There are six more which linux doesn't actually support, even though the
multiplexor does:

(*) icreate
(*) iopen
(*) idec
(*) iinc
(*) iread
(*) iwrite

Deal with file by inode number.

David
-
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/