Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Aug 2008 20:50:11 +0200
From:      Kris Kennaway <kris@FreeBSD.org>
To:        freebsd-fs@freebsd.org
Subject:   Re: new file system (my experiments)
Message-ID:  <48A1DB63.3050804@FreeBSD.org>
In-Reply-To: <20080812182028.GA7047@dchagin.dialup.corbina.ru>
References:  <20080812182028.GA7047@dchagin.dialup.corbina.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
Chagin Dmitry wrote:
> Hi
> 
> I experiment resalization of new file system based on tmpfs - shmfs for
> Linux emulation layer. for the beginning has simply copied current source
> codes to compat/lintmps, has compiled a module and tried to mount:
> 
> mount -t lintmpfs lintmpfs /compat/linux/dev/shm
> and has received a panic:
> 
> #11 0xffffffff803b6ade in calltrap ()
>     at /usr/local/root/pub/linux_shmfs/sys/amd64/amd64/exception.S:217
> ---Type <return> to continue, or q <return> to quit---
> #12 0xffffffff802a794b in vfs_filteropt (opts=0x0, legal=0xffffffff808497e0)
>     at /usr/local/root/pub/linux_shmfs/sys/kern/vfs_mount.c:1812
> #13 0xffffffff80847015 in tmpfs_mount (mp=0xffffff0001a3a000,
>     td=0xffffff004dcb56c0)
>     at /usr/local/root/pub/linux_shmfs/sys/modules/lintmpfs/../../compat/lintmpf
>     s/lintmpfs_vfsops.c:206
> #14 0xffffffff802a947f in vfs_donmount (td=0xffffff004dcb56c0, fsflags=0,
>     fsoptions=0xffffff000190e800)
>     at /usr/local/root/pub/linux_shmfs/sys/kern/vfs_mount.c:1010
> #15 0xffffffff802aaa46 in nmount (td=0xffffff004dcb56c0,
>     uap=0xfffffffe7e7fcbf0)
>     at /usr/local/root/pub/linux_shmfs/sys/kern/vfs_mount.c:417
> #16 0xffffffff803d4e47 in syscall (frame=0xfffffffe7e7fcc80)
>     at /usr/local/root/pub/linux_shmfs/sys/amd64/amd64/trap.c:902
> #17 0xffffffff803b6ceb in Xfast_syscall ()
> 
> (kgdb) f 12
> #12 0xffffffff802a794b in vfs_filteropt (opts=0x0, legal=0xffffffff808497e0)
>     at /usr/local/root/pub/linux_shmfs/sys/kern/vfs_mount.c:1812
> 1812    {
> (kgdb) list *0xffffffff802a794b
> 0xffffffff802a794b is in vfs_filteropt (/usr/local/root/pub/linux_shmfs/sys/kern
> /vfs_mount.c:1818).
> 1813            struct vfsopt *opt;
> 1814            char errmsg[255];
> 1815            const char **t, *p, *q;
> 1816            int ret = 0;
> 1817
> 1818            TAILQ_FOREACH(opt, opts, link) {
> 1819                    p = opt->name;
> 1820                    q = NULL;
> 1821                    if (p[0] == 'n' && p[1] == 'o')
> 1822                            q = p + 2;
> (kgdb)
> (kgdb) up
> #13 0xffffffff80847015 in tmpfs_mount (mp=0xffffff0001a3a000,
>     td=0xffffff004dcb56c0)
>     at /usr/local/root/pub/linux_shmfs/sys/modules/lintmpfs/../../compat/lintmpf
> s/lintmpfs_vfsops.c:206
> 206             if (vfs_filteropt(mp->mnt_optnew, lintmpfs_opts))
> (kgdb)
> 
> Problem in that mp->mnt_optnew is 0, but tmpfs works correctly.
> I shall not understand that I have missied...
> 

If you have DEBUG_LOCKS and/or DEBUG_VFS_LOCKS then one of them changes 
the kernel ABI (adds entries to structs somewhere).  You need to either 
add them to the module CFLAGS or use make buildkernel.

Kris



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48A1DB63.3050804>