Date: Sat, 28 Feb 1998 12:21:10 +1030 From: Greg Lehey <grog@lemis.com> To: Mike Smith <mike@smith.net.au> Cc: FreeBSD Hackers <hackers@FreeBSD.ORG> Subject: Re: Kernel debugging: what's going on here? Message-ID: <19980228122110.36590@freebie.lemis.com> In-Reply-To: <199802280145.RAA29930@dingo.cdrom.com>; from Mike Smith on Fri, Feb 27, 1998 at 05:45:39PM -0800 References: <19980228114349.01329@freebie.lemis.com> <199802280145.RAA29930@dingo.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 27 February 1998 at 17:45:39 -0800, Mike Smith wrote: >> Can anybody explain this to me? I'm writing a disk block, and am >> currently at bwrite: >> >> (kgdb) bt >> #0 bwrite (bp=0xf051ec00) at ../../kern/vfs_bio.c:364 >> #1 0xf0138d6a in vop_stdbwrite (ap=0xf2a76c74) at ../../kern/vfs_default.c:283 >> #2 0xf0138bb1 in vop_defaultop (ap=0xf2a76c74) at ../../kern/vfs_default.c:130 >> #3 0xf0146639 in spec_vnoperate (ap=0xf2a76c74) at ../../miscfs/specfs/spec_vnops.c:127 >> #4 0xf01c5679 in ufs_vnoperatespec (ap=0xf2a76c74) at ../../ufs/ufs/ufs_vnops.c:2242 >> #5 0xf2aab097 in VOP_BWRITE (bp=0xf051ec00) at vnode_if.h:1117 >> #6 0xf2aa95c4 in vinumstart (vol=0xf0563000, bp=0xf10f1bb0) at request.c:228 >> #7 0xf2aa9189 in vinumstrategy (bp=0xf10f1bb0) at request.c:71 >> #8 0xf2aa7b63 in vinum_writedisklabel (vol=0xf0563000, lp=0xf0563110) at io.c:830 >> >> I've handed a buffer header up from frame 6 (not the bp in the >> parameter list). When it gets to bwrite, it has a different content. >> gdb tells me different contents depending on the frame it's in: > > My guess would be that the bp has been translated to reflect the block > device that it will be operating on at bwrite level rather than the > logical device that you were operating on when you called VOP_BWRITE. > > This would involve a change in vnode, as well as (maybe) offset etc. Look at the addresses. They're the same: > (kgdb) f 0 > #0 bwrite (bp=0xf051ec00) at ../../kern/vfs_bio.c:364 > 364 int oldflags = bp->b_flags; > (kgdb) p bp->b_vp > $13 = (struct vnode *) 0xf29ecbc0 > (kgdb) p ((struct vnode *) 0xf29ecbc0)->v_type > $14 = VBLK > (kgdb) f 6 > #6 0xf2aa95c4 in vinumstart (vol=0xf0563000, bp=0xf10f1bb0) at request.c:228 > 228 VOP_BWRITE (&rqe->b); /* do an asynchronous write */ > (kgdb) p ((struct vnode *) 0xf29ecbc0)->v_type > $15 = VNON > (kgdb) Greg To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980228122110.36590>