[Unionfs] Can't mount NFS-exported union anymore in unionfs-1.4

Wilhelm Meier wilhelm.meier at fh-kl.de
Fri Nov 24 07:42:47 EST 2006


Hi,

Am Freitag, 24. November 2006 12:34 schrieb hooanon05 at yahoo.co.jp:
>
> > The filesystem /tftproot contains both branches for my
> > union: /tftproot/gentoo_A (ro) and /tftproot/gentoo_Bdiff (rw). So I need
> > only a forward map and one reversemap.
>
> The reverse map is required per a branch. You need TWO revmaps.
> I am not sure this option is the cause of your problem, but please try
> TWO revmaps first.

As I said before the two branches are on the same fs, so I get:

gs tftproot # unionimap -c gbf.map
gs tftproot # unionimap -a gbf.map gbro.map /tftproot/gentoo_A
gs tftproot # unionimap -a gbf.map gbrw.map /tftproot/gentoo_Bdiff
Specified fs already exists in the forward map


> And check these mails please.
> http://www.fsl.cs.sunysb.edu/pipermail/unionfs/2006-August/004755.html
> http://www.fsl.cs.sunysb.edu/pipermail/unionfs/2006-August/004756.html

gs ~ # grep CONFIG_EXPORT /usr/src/linux/.config
CONFIG_EXPORTFS=m

This looks o.k., or did I understand you wrong?

And then I tried also your last patch:
Index: persistent_inode.c
===================================================================
RCS file: /home/cvs/unionfs/unionfs/persistent_inode.c,v
retrieving revision 1.36
diff -u -p -r1.36 persistent_inode.c
--- persistent_inode.c  8 Jul 2006 17:58:31 -0000       1.36
+++ persistent_inode.c  24 Nov 2006 12:03:16 -0000
@@ -211,7 +211,7 @@ static int verify_reversemap(struct supe
 
                        d = hidden_root_info->udi_dentry[bindex];
 
-                       err = d->d_sb->s_op->statfs(d->d_sb, &st);
+                       err = d->d_sb->s_op->statfs(d, &st);
                        if (err)
                                goto out;

But the effect remains the same:

gs unionfs-1.4.nfs-permission-denied # mount -t unionfs 
none /tftproot/gentoo_B -o 
imap=/tftproot/gbf.map:/tftproot/gbro.map,dirs=/tftproot/gentoo_Bdiff=rw:/tftproot/gentoo_A=ro
Segmentation fault

Here the oops:

Registering unionfs 1.4
unionfs: debugging is not enabled
BUG: unable to handle kernel NULL pointer dereference at virtual address 
00000047
 printing eip:
d0a0c78a
*pde = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: unionfs nfsd exportfs floppy parport_pc parport pcspkr 
pcnet32 mii mptspi mptscsih mptbase scsi_transport_spi rtc nfs lockd sunrpc 
raid10 raid1 raid0 dm_mirror dm_mod pdc_adma sata_mv ata_piix ahci sata_qstor 
sata_vsc sata_uli sata_sis sata_sx4 sata_nv sata_via sata_svw sata_sil24 
sata_sil sata_promise libata sbp2 ohci1394 ieee1394 sl811_hcd ohci_hcd 
uhci_hcd usb_storage usbhid ehci_hcd usbcore
CPU:    0
EIP:    0060:[<d0a0c78a>]    Not tainted VLI
EFLAGS: 00010246   (2.6.18-gentoo-r1 #3)
EIP is at read_uin+0x5a/0x160 [unionfs]
eax: 00000000   ebx: 0000003f   ecx: 00000000   edx: 0006800d
esi: cccd45c0   edi: cd569ca4   ebp: cf98da00   esp: cd569c4c
ds: 007b   es: 007b   ss: 0068
Process mount (pid: 11337, ti=cd569000 task=cfce7aa0 task.ti=cd569000)
Stack: c014fa78 00000000 00000000 00000010 00340098 00000000 ceed5400 00000000
       ced6cca0 00000001 d0a047f7 cf98da00 00000000 0006800d 00000040 cd569ca4
       00000000 00000286 00000008 cebd6e94 d0a0b965 00000008 00000000 00000002
Call Trace:
 [<c014fa78>] cache_alloc_refill+0x2ac/0x431
 [<d0a047f7>] unionfs_interpose+0x97/0x480 [unionfs]
 [<d0a0b965>] new_dentry_private_data+0x125/0x1c0 [unionfs]
 [<d0a05331>] unionfs_read_super+0x6b1/0xe0c [unionfs]
 [<c0111c0d>] default_wake_function+0x0/0x15
 [<c01d7c36>] idr_get_new_above_int+0x123/0x1fb
 [<c01d7d1d>] idr_get_new+0xf/0x30
 [<c016895c>] get_filesystem+0x12/0x31
 [<c0157b9b>] sget+0x2ac/0x2b6
 [<c015838d>] get_sb_nodev+0x4e/0x91
 [<d0a04c80>] unionfs_read_super+0x0/0xe0c [unionfs]
 [<c0157db9>] vfs_kern_mount+0x35/0x66
 [<d0a04c80>] unionfs_read_super+0x0/0xe0c [unionfs]
 [<c0157e27>] do_kern_mount+0x29/0x39
 [<c016a0c0>] do_mount+0x5cf/0x647
 [<c0169348>] mntput_no_expire+0x14/0x67
 [<c015f712>] link_path_walk+0xa8/0xb3
 [<c013bfc8>] filemap_nopage+0xbf/0x31b
 [<c013c0a8>] filemap_nopage+0x19f/0x31b
 [<c01447b7>] __handle_mm_fault+0x3ff/0x756
 [<c01492f6>] page_add_file_rmap+0x17/0x1a
 [<c0144599>] __handle_mm_fault+0x1e1/0x756
 [<c015e7f0>] putname+0x2d/0x30
 [<c013d942>] get_page_from_freelist+0x9f/0x356
 [<c013de8e>] __get_free_pages+0x29/0x2e
 [<c0168fdd>] copy_mount_options+0x28/0x10b
 [<c016a1b0>] sys_mount+0x78/0xb1
 [<c010284d>] sysenter_past_esp+0x56/0x79
Code: b6 c0 89 44 24 04 8b 46 48 8b 54 24 04 8b 1c 90 8b 54 24 34 8d 04 d5 30 
00 00 00 89 44 24 10 31 c0 89 44 24 14 c7 07 00 00 00 00 <8b> 43 08 8b 54 24 
10 8b 4c 24 14 8b 40 0c 83 c2 08 83 d1 00 3b
EIP: [<d0a0c78a>] read_uin+0x5a/0x160 [unionfs] SS:ESP 0068:cd569c4c



>
>
> Junjiro Okajima

-- 
Wilhelm Meier
email: wilhelm.meier at fh-kl.de



More information about the unionfs mailing list