Subject: Re: [vserver] compile problems in combination with aufs
From: Herbert Poetzl <herbert@13thfloor.at>
Date: Fri, 4 Apr 2014 21:21:13 +0200

On Fri, Apr 04, 2014 at 03:23:29PM +0200, Oliver Welter wrote:
> Bump - hmm nobody here with a hint on that?

> Am 24.03.2014 11:11, schrieb Oliver Welter:
>> Hello,

>> I am using the linux vserver patch in combination with the
>> aufs overlay filesystem which did its job pretty nice the 
>> last years.

>> I tried to update to 3.4.83 yesterday and ran into a
>> compilation error - it is inside the aufs code but the
>> maintainer told me that the reason is a wrong typecast 
>> inside the vserver patch.

Well, I can assure you, there is nothing wrong with either
code (aufs or Linux-VServer) in this regard.

>> As I am not that kernel guru, I hope somebody here can
>> help me out. Here is the replied post from the aufs
>> mailing list. The source of the aufs code is available at
>> https://github.com/sfjro/aufs3-linux/tree/aufs3.4, my 
>> patched source is available at
>> https://github.com/oliwel/aufs3-linux/tree/vserver

>> --snipp--

>> Oliver Welter:
>>> fs/aufs/cpup.c: In function 'au_cpup_attr_flags':
>>> fs/aufs/cpup.c:32:2: error: size of unnamed array is negative
>> 	:::
>>> The source is made of:
>>> * latest HEAD of aufs3.4 branch (c1ecf4f)
>>> * merged with kernel archive linux-3.4.y (0c4f5371)
>>> * vserver patch from 
>>> http://www.linux-vserver.org/Welcome_to_Linux-VServer.org 
>>> (http://vserver.13thfloor.at/Experimental/patch-3.4.83-vs2.3.3.9.diff)

>> The vserver patch converts "unsigned int i_flags" to
>> unsigned short, and the line BUILD_BUG_ON(sizeof(iflags) !=
>> sizeof(dst->i_flags)) (which carefully check the consistency
>> between linux kernel and aufs source files) detects it
>> expectedly.

As explained, the Linux-VServer patch changes certain
data structures and the aufs patch expects the 'original'
structures.

>> In order to support vserver, I am afraid you need to solve these
>> issues.
>> - convert a variable in aufs which corresponds to "unsigned
>>   int i_flags" into unsigned short.
>> - support the newly added flag vlaues, S_IXUNLINK, etc.
>> - support the newly added variable, i_vflags, i_mdev, etc.
>> - there may exist more issues.

And that's exactly what you need to do.

Best,
Herbert

>> --snapp--

>> best regards

>> Oliver




> -- 
> Protect your environment -  close windows and adopt a penguin!