cvs commit: src/sys/boot/pc98/boot2 inode.h src/sys/i386/boot/dosboot inode.h src/sys/kern kern_lockf.c kern_mib.c kern_prot.c kern_resource.c subr_param.c src/sys/sys fcntl.h lockf.h proc.h resource.h resourcevar.h sysctl.h src/sys/vfs/isofs/cd9660 ...
Richard Nyberg
rnyberg at it.su.se
Mon May 10 01:56:47 PDT 2004
At Mon, 3 May 2004 09:06:27 -0700 (PDT),
Joerg Sonnenberger wrote:
>
> joerg 2004/05/03 09:06:27 PDT
>
> DragonFly src repository
>
> Modified files:
> sys/boot/pc98/boot2 inode.h
> sys/i386/boot/dosboot inode.h
> sys/kern kern_lockf.c kern_mib.c kern_prot.c
> kern_resource.c subr_param.c
> sys/sys fcntl.h lockf.h proc.h resource.h
> resourcevar.h sysctl.h
> sys/vfs/isofs/cd9660 cd9660_node.h
> sys/vfs/nfs nfsnode.h
> sys/vfs/smbfs smbfs_node.h
> sys/vfs/ufs inode.h
> Log:
> POSIX lock resource limit part 3/4
>
> This splits "struct lockf" into the general book-keeping of ranges and
> blocked request and the "struct lockf_range" which constists of the data
> for a specific range. Adjust the interface of lf_advlock to remove one
> level of pointer indirection and embedded "struct lockf" directly in the
> inodes. Don't mess with wait channels any more.
Hello Joerg.
I'm trying to keep nnpfs of the arla project[1] up to date with dragonfly.
I have remove the indirection, but after this commit I get panics in
lf_advlock when using arla.
Here you can see how nnpfs calls lf_advlock
(kgdb) frame 6
#6 0xc0165e41 in lf_advlock (ap=0xdd317bc4, lock=0x0, size=0)
at /usr/src/sys/kern/kern_lockf.c:144
144 struct flock *fl = ap->a_fl;
(kgdb) print *ap
$5 = {a_desc = 0xc02f2a40, a_vp = 0xdd31e0c0, a_id = 0xcfd703c0 "", a_op = 8,
a_fl = 0xdd317bf4, a_flags = 80}
The actual line lf_advlock panics on is probably the one checking
lock->init_done == 0, since lock is null. In rev 1.6 of kern_lockf.c
having the head == (struct lockf *)0 was supported, but it isn't
anymore. Is this intentional? Do you have any suggestion on what to
do on the nnpfs side?
Caveat: I am not really sure what lf_advlock really does or what
the meaning of the argument to it are, I'm just trying to make it
work :)
Right now I have made nnpfs return EOPNOTSUPP instead of calling
lf_advlock...
Regards,
-Richard
[1] http://www.stacken.kth.se/project/arla/
More information about the Commits
mailing list