[Unionfs] Can't mount NFS-exported union anymore in unionfs-1.4
Wilhelm Meier
wilhelm.meier at fh-kl.de
Fri Nov 24 03:25:22 EST 2006
Hello Junjiro,
Am Freitag, 24. November 2006 02:39 schrieb hooanon05 at yahoo.co.jp:
> Wilhelm Meier:
> > No, I don't use it, because unionfs-1.4 causes an oops if I try to mount
> > with imap enabled. But I don't think that I need imap if my nfs-server
> > keeps running and therefore the unionfs inodes are the same. Or am I
> > wrong in this respect?
>
> The imap option is necessary to nfsd.
Really? In the past versions it worked reliable without imap as ro-filesystem.
> Then I guess your error 'bad nfs status' is related to this option.
>
> Do you mean that you applied the patch Jeff mentioned a few days ago,
Yes, I applied your "permission denied" patch and Jeffs patch to get the
compile right with die UNIONFS_IMAP option.
But there was a warning. I ignored it in the first place, disabling -Werror in
the Makefile:
CC [M] /root/unionfs-1.4.nfs-permission-denied/persistent_inode.o
/root/unionfs-1.4.nfs-permission-denied/persistent_inode.c: In
function 'verify_reversemap':
/root/unionfs-1.4.nfs-permission-denied/persistent_inode.c:214: warning:
passing argument 1 of 'd->d_sb->s_op->statfs' from incompatible pointer type
> and the compilation succeeded, but mounting failed?
Yes.
> Will you show us the error and your mount options?
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.
gs ~ # df -h
Filesystem Size Used Avail Use% Mounted on
/dev/hda1 7.9G 5.6G 2.4G 71% /
udev 126M 184K 126M 1% /dev
/dev/hdb1 7.9G 4.1G 3.8G 53% /tftproot
shm 126M 0 126M 0% /dev/shm
I create the maps:
gs tftproot # unionimap -v
unionimap: invalid option -- v
Unknown option `-v'.
unionimap version: $Id: unionimap.c,v 1.1 2006/05/31 02:51:04 dquigley Exp $
Distributed with Unionfs 1.4
Usage: unionimap [-c] [-a ARG:] filename path
flag -c: create forward map with name filename
flag -a ARG: create reverse map with name filename and path and add it to
forwardmap ARG
flag -d: if set once will dump the header of the map if twice it will also
dump the contents
flag -h: prints this message then quits
please note that -c -a and -d are mutually exclusive
gs tftproot # unionimap -c gb.map
gs tftproot # unionimap -a gb.map gbr.map /tftproot
gs ~ # ls -l /tftproot/
total 48
-rw------- 1 root root 6172 Nov 22 14:12 gb.map
-rw------- 1 root root 48 Nov 22 14:12 gbr.map
lrwxrwxrwx 1 root root 8 Jun 12 18:08 gentoo -> gentoo_A
drwxr-xr-x 17 root root 4096 Nov 20 13:09 gentoo_A
lrwxrwxrwx 1 root root 8 Nov 22 18:19 gentoo_B -> gentoo_A
drwxr-xr-x 4 root root 4096 Nov 20 18:28 gentoo_Bdiff
drwxr-xr-x 4 root root 4096 Dec 20 2005 gentoo_Bdiff2
drwxr-xr-x 17 root root 4096 Dec 5 2005 gentoo_C
drwxr-xr-x 2 root root 4096 Dec 7 2005 gentoo_D
drwx------ 2 root root 16384 Dec 3 2005 lost+found
-rw-r--r-- 1 root root 0 Sep 11 14:23 x
gs ~ #
I try to mount:
gs tftproot # mount -t unionfs none /tftproot/gentoo_B -o
imap=/tftproot/gb.map:/tftproot/gbr.map,dirs=/tftproot/gentoo_Bdiff=rw:/tftproot/gentoo_A=ro
Segmentation fault
gs tftproot #
And here is the OOPS:
Nov 24 10:24:16 gs Registering unionfs 1.4
Nov 24 10:24:16 gs unionfs: debugging is not enabled
Nov 24 10:24:20 gs BUG: unable to handle kernel paging request at virtual
address 00100108
Nov 24 10:24:20 gs printing eip:
Nov 24 10:24:20 gs d0a0c78a
Nov 24 10:24:20 gs *pde = 00000000
Nov 24 10:24:20 gs Oops: 0000 [#1]
Nov 24 10:24:20 gs SMP
Nov 24 10:24:20 gs 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
Nov 24 10:24:20 gs CPU: 0
Nov 24 10:24:20 gs EIP: 0060:[<d0a0c78a>] Not tainted VLI
Nov 24 10:24:20 gs EFLAGS: 00010246 (2.6.18-gentoo-r1 #3)
Nov 24 10:24:20 gs EIP is at read_uin+0x5a/0x160 [unionfs]
Nov 24 10:24:20 gs eax: 00000000 ebx: 00100100 ecx: 00000000 edx:
0006800d
Nov 24 10:24:20 gs esi: c12c36c0 edi: cc860ca4 ebp: c12e4600 esp:
cc860c4c
Nov 24 10:24:20 gs ds: 007b es: 007b ss: 0068
Nov 24 10:24:20 gs Process mount (pid: 11150, ti=cc860000 task=ce553000
task.ti=cc860000)
Nov 24 10:24:20 gs Stack: c014fa78 00000000 00000000 00000010 00340098
00000000 cc04e400 00000000
Nov 24 10:24:20 gs ce6d5960 00000001 d0a047f7 c12e4600 00000000 0006800d
00000040 cc860ca4
Nov 24 10:24:20 gs 00000000 00000286 00000008 ca694214 d0a0b965 00000008
00000000 00000002
Nov 24 10:24:20 gs Call Trace:
Nov 24 10:24:20 gs [<c014fa78>] cache_alloc_refill+0x2ac/0x431
Nov 24 10:24:20 gs [<d0a047f7>] unionfs_interpose+0x97/0x480 [unionfs]
Nov 24 10:24:20 gs [<d0a0b965>] new_dentry_private_data+0x125/0x1c0 [unionfs]
Nov 24 10:24:20 gs [<d0a05331>] unionfs_read_super+0x6b1/0xe0c [unionfs]
Nov 24 10:24:20 gs [<c015f712>] link_path_walk+0xa8/0xb3
Nov 24 10:24:20 gs [<c01d7c36>] idr_get_new_above_int+0x123/0x1fb
Nov 24 10:24:20 gs [<c015f4b6>] __link_path_walk+0xaa2/0xc56
Nov 24 10:24:20 gs [<c01d7d1d>] idr_get_new+0xf/0x30
Nov 24 10:24:20 gs [<c016895c>] get_filesystem+0x12/0x31
Nov 24 10:24:20 gs [<c0157b9b>] sget+0x2ac/0x2b6
Nov 24 10:24:20 gs [<c015838d>] get_sb_nodev+0x4e/0x91
Nov 24 10:24:20 gs [<d0a04c80>] unionfs_read_super+0x0/0xe0c [unionfs]
Nov 24 10:24:20 gs [<c0157db9>] vfs_kern_mount+0x35/0x66
Nov 24 10:24:20 gs [<d0a04c80>] unionfs_read_super+0x0/0xe0c [unionfs]
Nov 24 10:24:20 gs [<c0157e27>] do_kern_mount+0x29/0x39
Nov 24 10:24:20 gs [<c016a0c0>] do_mount+0x5cf/0x647
Nov 24 10:24:20 gs [<c0169348>] mntput_no_expire+0x14/0x67
Nov 24 10:24:20 gs [<c015f712>] link_path_walk+0xa8/0xb3
Nov 24 10:24:20 gs [<c013bfc8>] filemap_nopage+0xbf/0x31b
Nov 24 10:24:20 gs [<c013c0a8>] filemap_nopage+0x19f/0x31b
Nov 24 10:24:20 gs [<c01447b7>] __handle_mm_fault+0x3ff/0x756
Nov 24 10:24:20 gs [<c01492f6>] page_add_file_rmap+0x17/0x1a
Nov 24 10:24:20 gs [<c0144599>] __handle_mm_fault+0x1e1/0x756
Nov 24 10:24:20 gs [<c015e7f0>] putname+0x2d/0x30
Nov 24 10:24:20 gs [<c013d942>] get_page_from_freelist+0x9f/0x356
Nov 24 10:24:20 gs [<c013de8e>] __get_free_pages+0x29/0x2e
Nov 24 10:24:20 gs [<c0168fdd>] copy_mount_options+0x28/0x10b
Nov 24 10:24:20 gs [<c016a1b0>] sys_mount+0x78/0xb1
Nov 24 10:24:20 gs [<c010284d>] sysenter_past_esp+0x56/0x79
Nov 24 10:24:20 gs 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
Nov 24 10:24:20 gs EIP: [<d0a0c78a>] read_uin+0x5a/0x160 [unionfs] SS:ESP
0068:cc860c4c
gs log #
HTH,
wilhelm
>
> Junjiro Okajima
--
Wilhelm Meier
email: wilhelm.meier at fh-kl.de
More information about the unionfs
mailing list