new file system (my experiments)

Chagin Dmitry dchagin at freebsd.org
Tue Aug 12 18:44:03 UTC 2008


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...

-- 
Have fun!
chd


More information about the freebsd-fs mailing list