[OpenAFS-devel] Google Summer of Code Student Introduction

Harald Barth haba@kth.se
Tue, 22 Apr 2008 18:42:20 +0200 (CEST)


Jeff> As far as I am aware Arla is not shipped as part of the Linux kernel

I just said it could be.

David> I looked at Arla and noticed a few things:
> 
>  (1) Filesystem design is about compromises, and I don't agree with all the
>      ones Arla have used.  Arla, for instance, is mostly implemented in
>      userspace.

Yes, predating FUSE which is hip nowadays.

>  (2) There was a bad deadlock problem when I looked in 2001, which may have
>      been fixed in the intervening seven years, in which the kernel and
>      userspace could deadlock against each other.  Unfortunately, I don't
>      recall the details.

There has been progress since 2001. For example block caching which was not
implemented back in 2001 either.

>  (3) I don't like direct patching of the syscall table.  However, Linux should
>      provide pioctl properly.

There has been progress since 2001....

>  (4) This is very bad:
> 
> 	#ifdef CONFIG_SECURITY
> 	...
> 	static int
> 	nnpfs_set_pag_sec(void)
> 	{
> 	    static nnpfs_pag_t pagnum = NNPFS_PAG_LLIM;
> 
> 	    if (pagnum == NNPFS_PAG_ULIM)
> 		return -ENOMEM;
> 	    /* pagnum = NNPFS_PAG_LLIM; */
> 
>  >>>	    current->security = PAG2SEC(pagnum);
> 	    pagnum++;
> 	    return 0;
> 	}
> 
>      You cannot do that!

As you see, it could. You might be able to do it better, so be my
guest. The code is GPL:ed.

>      Keyrings are there for a good reason.

I think when this code was written the keyring stuff was not ready for
production. This is from the times when the AFS community tried very
hard to explain to the Linux kernel community what a PAG is. I suppose
you can find an email archive to freshen your mind.

I just pointed out to the community that the code is there. You may be
able to write better code in a short time from scratch. Astonish me.

Harald.