[OpenAFS-devel] unix afsd organization

Jeffrey Hutzelman jhutz@cmu.edu
Wed, 17 Jun 2009 17:04:20 -0400


--On Wednesday, June 17, 2009 03:23:12 PM -0500 Andrew Deason 
<adeason@sinenomine.net> wrote:

> On Wed, 17 Jun 2009 16:14:38 -0400
> Jeffrey Hutzelman <jhutz@cmu.edu> wrote:
>
>> --On Wednesday, June 17, 2009 02:33:47 PM -0500 Andrew Deason
>> <adeason@sinenomine.net> wrote:
>>
>> > RT 124947 [1] has a patch for splitting up afsd into a kind of
>> > backend and frontend of sorts. The "backend" is all of the logic of
>> > command-line parsing, and issuing afs syscalls, and a few other
>> > things. The "frontend", of which now there's only one but there
>> > could be many, consists of code that's very specific to using the
>> > afs kernel module client: how syscalls are made, mounting /afs,
>> > etc. This division allows for easily swapping out the code for
>> > kernel module with, say, the userspace kernel code.
>>
>> I'm not sure why you would ever want to run afsd other than to set up
>> the AFS kernel module.
>>
>> I think maybe what you're looking for is to take the complex bits of
>> logic that should be shared, like cache setup, and move them out into
>> a library that can be called by the userspace cache manager.
>
> Well, by both userspace and kernel. And that's basically what this is;
> just afsd.o instead of libfoo.a. But we'd rather have this as another
> .a, then?

No, I don't really care whether it's an archive library or a single object, 
though you should note that in the latter case I'm pretty sure our build 
system means you end up compiling it twice.