lkml.org 
[lkml]   [2003]   [May]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectAdding an "acceptable" interface to the Linux kernel for AFS
    Date

    Hi,

    I'm trying to write an AFS syscall framework for the Linux kernel that can do
    two things:

    (1) Handle PAGs without the need to subvert the groups list and override the
    set/getgroups syscalls.

    (2) Cache authentication data per PAG, doing garbage collection automatically
    when a PAG no longer has any attached processes.

    (3) Pass other AFS syscall operations to interfaces in whatever AFS
    filesystem module is currently loaded (OpenAFS, Arla, etc.).

    However, (3) is somewhat tricky as the interface isn't very consistent. For
    instance, it would appear that all PIOCTL commands should require a path, but
    some of them don't:-/ I don't know why these commands were made PIOCTLs rather
    than using the CALL interface, but it makes multiplexing in the core kernel
    more difficult.

    I'm wondering how attached OpenAFS is to this interface? Can OpenAFS be
    altered to use the following access points instead:

    (1) setpag(pag_t pag)

    (2) getpag()

    (3) settok(const char *fs, const char *domain, size_t size, const void *data)

    (4) gettok(const char *fs, const char *domain, size_t size, void *data)

    (5) deltok(const char *fs, const char *domain)

    (6) cleartoks(const char *fs)

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

    (Where path is mandatory.)

    It may be possible to replace this entirely with calls to setxattr and
    co. from userspace... apart from VIOC_AFS_STAT_MT_PT that is, and that
    could be done with open/ioctl/close on the directory.

    (8) fsctl(const char *fs, const char *cmd, struct fsctl_buf)

    Using:

    struct fsctl_buf { size_t in_size, out_size; void *in, *out; };

    All miscellaneous ops would be done through this. It would work
    internally as nfsservctl does in 2.5.

    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/

    \
     
     \ /
      Last update: 2005-03-22 13:35    [W:2.217 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site