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>