public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: Derrick J Brashear <shadow@dementia.org>
Cc: openafs-devel@openafs.org, linux-kernel@vger.kernel.org
Subject: Adding an "acceptable" interface to the Linux kernel for AFS
Date: Fri, 09 May 2003 11:16:49 +0100	[thread overview]
Message-ID: <10180.1052475409@warthog.warthog> (raw)


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

             reply	other threads:[~2003-05-09 10:04 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-09 10:16 David Howells [this message]
2003-05-09 16:40 ` Adding an "acceptable" interface to the Linux kernel for AFS Derrick J Brashear
2003-05-09 17:40   ` David Howells
2003-05-09 19:09     ` Derrick J Brashear
2003-05-09 20:19       ` David Howells
2003-05-09 20:30         ` Derrick J Brashear
  -- strict thread matches above, loose matches on Subject: below --
2003-05-09 21:22 Chuck Ebbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=10180.1052475409@warthog.warthog \
    --to=dhowells@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=openafs-devel@openafs.org \
    --cc=shadow@dementia.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox