new file system (my experiments)
Chagin Dmitry
dchagin at freebsd.org
Tue Aug 12 20:50:51 UTC 2008
On Tue, Aug 12, 2008 at 08:50:11PM +0200, Kris Kennaway wrote:
> 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.
>
yes, it has helped. thnx!
--
Have fun!
chd
More information about the freebsd-fs
mailing list