[OpenAFS] 1.4.7pre3 client success on EL4&5 - and a question

Stephan Wiesand Stephan.Wiesand@desy.de
Fri, 11 Apr 2008 13:50:42 +0200 (CEST)


Hi Marc,

On Thu, 10 Apr 2008, Marc Dionne wrote:

> On Wed, Apr 9, 2008 at 11:45 AM, Stephan Wiesand
> <Stephan.Wiesand@desy.de> wrote:
>> PS On SL3, inserting the module from 1.4.7pre3 fails with the message that
>> hlist_unhashed is GPLONLY. I'll file a bug in RT.
>
>> From looking at your error messages in RT and 2.4 kernel sources, I
> think hlist_unhashed simply doesn't exist on 2.4.  So the code that
> was added to hash inodes (to prevent dealocks when using mmap())
> probably needs to be made conditional to 2.6.
>
> Could you try the patch below for src/afs/LINUX/osi_vnodeops.c

Yes, this patch is sufficient to make it load and work. Thanks.

There seems to be an ABI incompatibility somewhere: Our build of 
the AFS Perl module on this platform seems unable to use my token 
("vsu_ClientInit: Could not get afs tokens, running unauthenticated.").

The module was built against OpenAFS-1.2.13 in May 2006, but up to and 
including 1.4.6 it was still working fine with 1.4.x clients. Maybe that 
was by chance only?

Anyway, I'll keep pre3 running on an i386 and an x86_64 system and report 
further problems if any show up.

-- Stephan

> Marc
>
> =====================
> --- osi_vnodeops.c.orig	Wed Apr 02 14:27:13 2008
> +++ osi_vnodeops.c	Thu Apr 10 11:39:59 2008
> @@ -960,7 +960,9 @@
>
> 	afs_getattr(vcp, &vattr, credp);
> 	afs_fill_inode(ip, &vattr);
> +#if defined(AFS_LINUX26_ENV)
> 	insert_inode_hash(ip);
> +#endif
> 	dp->d_op = &afs_dentry_operations;
> 	dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
> 	d_instantiate(dp, ip);
> @@ -1006,8 +1008,10 @@
> 	ip = AFSTOV(vcp);
> 	afs_getattr(vcp, &vattr, credp);
> 	afs_fill_inode(ip, &vattr);
> +#if defined(AFS_LINUX26_ENV)
> 	if (hlist_unhashed(&ip->i_hash))
> 	    insert_inode_hash(ip);
> +#endif
>     }
>     dp->d_op = &afs_dentry_operations;
>     dp->d_time = hgetlo(VTOAFS(dip)->m.DataVersion);
>

-- 
Stephan Wiesand
   DESY - DV -
   Platanenallee 6
   15738 Zeuthen, Germany