Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 294653 - aufs2 ebuild (sysfs/aufs-0p20090916.ebuild) does not support nfs
Summary: aufs2 ebuild (sysfs/aufs-0p20090916.ebuild) does not support nfs
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Thomas Sachau
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-11-25 22:36 UTC by Gruffi
Modified: 2009-11-26 18:13 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
aufs2-9999-build.log (build.log,6.91 KB, text/plain)
2009-11-26 00:36 UTC, Steffen 'j0inty' Stollfuß
Details
aufs2-nfs.patch (aufs2-nfs.patch,827 bytes, text/plain)
2009-11-26 02:31 UTC, Steffen 'j0inty' Stollfuß
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gruffi 2009-11-25 22:36:45 UTC
When exporting an aufs filesystem over nfs an error message is received:
"exportfs: Warning: /mountpoint does not support NFS export."

Reproducible: Always

Steps to Reproduce:
1.emerge aufs2
2.export an aufs directory over nfs
3.run exportfs -a

Actual Results:  
Error is received that target directory is not exportable over NFS:
"exportfs: Warning: /mountpoint does not support NFS export."

Expected Results:  
When you change the following line in the ebuild:
"emake CC=$(tc-getCC) CONFIG_AUFS_FS=m KDIR=${KV_DIR} || die"
to
"emake CC=$(tc-getCC) CONFIG_AUFS_FS=m CONFIG_AUFS_EXPORT=y KDIR=${KV_DIR} || die"
then no error is received an exporting over nfs works just fine.

Aufs is supporting NFS-exporting in linux-2.6.18 and later.  Since aufs has  no  actual  block  device,  you  need  to add NFS ’fsid’ option at exporting. Refer to the manual of NFS about the detail of this  option.

there are several limitations or requirements, such as:
-The version of linux kernel must be linux-2.6.18 or later.
-You need to enable CONFIG_AUFS_EXPORT.
-NFSv2 is not supported. When you  mount  the  exported  aufs from your NFS client, you will need to some NFS options like v3 or nfsvers=v3, especially if it is nfsroot.
Comment 1 Steffen 'j0inty' Stollfuß 2009-11-26 00:33:53 UTC
Hi,

I tested it here on my gentoo boxes with aufs2-9999 and NFS. I ran into the same error as Gruffi. So I patched the aufs2-9999.ebuild and compiled the aufs2 module. Here I ran into another problem while compiling the export.c file from the aufs2 package.

[snip]
/var/tmp/portage/sys-fs/aufs2-9999/work/aufs2-9999/fs/aufs/export.c: In function 'decode_ino':                                                
/var/tmp/portage/sys-fs/aufs2-9999/work/aufs2-9999/fs/aufs/export.c:43: error: size of array 'type name' is negative                          
make[2]: *** [/var/tmp/portage/sys-fs/aufs2-9999/work/aufs2-9999/fs/aufs/export.o] Error 1                                                    
make[2]: *** Waiting for unfinished jobs....                                                                                                  
make[1]: *** [_module_/var/tmp/portage/sys-fs/aufs2-9999/work/aufs2-9999/fs/aufs] Error 2                                                     
make[1]: Leaving directory `/usr/src/linux-2.6.30-tuxonice-r6'                                                                                
make: *** [fs/aufs/aufs.ko] Error 2                                                                                                           
 * ERROR: sys-fs/aufs2-9999 failed:
*   (no error message)                                                                                                                       
 *                                                                                                                                            
 * Call stack:                                                                                                                                
 *     ebuild.sh, line  49:  Called src_compile                                                                                               
 *   environment, line 3693:  Called die                                                                                                      
 * The specific snippet of code:                                                                                                              
 *       emake CC=$(tc-getCC) CONFIG_AUFS_FS=m CONFIG_AUFS_EXPORT=y KDIR=${KV_OUT_DIR:-$KV_DIR} || die;
[/snap]

I will try to find a patch in the bug database from the upstream and if i found a patch post it here with aufs2-9999.ebuild patch, too.

regards
j0inty
Comment 2 Steffen 'j0inty' Stollfuß 2009-11-26 00:36:18 UTC
Created attachment 211208 [details]
aufs2-9999-build.log

The build log file that demonstrate the problem.
Comment 3 Steffen 'j0inty' Stollfuß 2009-11-26 02:30:50 UTC
Hi,

I found a solution in the commit history of the git repository.

http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=commitdiff;h=7f653fc4ce5a7c14ea3d34e7b044089d65338984

The above link will redirect you to the patch that made it possible to compile the module with export behaviour for nfs filesystems. In this patch there will add another configure option that is needed to setted if you want to use aufs with nfs and amd64 arch. I added both configuration parameters and the module compiles fine at me.

I also made an ebuild patch that added on x86 system only the CONFIG_AUFS_EXPORT=y  parameter and on adm64 system append the CONFIG_AUFS_INO_T_64=y, too.

I tested it here on an amd64 and x86 systems to know does it work for the diffrent arch's.

Please check this patch and add it to the portage tree on successfull compile on diffrent machines.

regards
j0inty
Comment 4 Steffen 'j0inty' Stollfuß 2009-11-26 02:31:48 UTC
Created attachment 211219 [details]
aufs2-nfs.patch

Patch for the 9999 ebuild that add nfs support on 32Bit and 64Bit archs.
Comment 5 Thomas Sachau gentoo-dev 2009-11-26 18:13:35 UTC
1. i wont support any ebuild, which is not in main tree, this includes the live ebuild from bugzilla, so if you add build logs or patches, use in-tree ebuilds for that

2. aufs-0_p20090916-r1 just added to main tree with nfs useflag, should be on your local rsync mirror in a few hours