NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/39929 (NetBSD 5.0_BETA kernel panics when trying to access /dev/rcd0d with growisofs)
The following reply was made to PR kern/39929; it has been noted by GNATS.
From: Tomasz Homa <th%risp.pl@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: kern/39929 (NetBSD 5.0_BETA kernel panics when trying to
access /dev/rcd0d with growisofs)
Date: Mon, 1 Dec 2008 11:44:31 +0100
* Joerg Sonnenberger <joerg%britannica.bec.de@localhost> [2008-11-30 23:00:08
+0000]:
>The following reply was made to PR kern/39929; it has been noted by GNATS.
>
>From: Joerg Sonnenberger <joerg%britannica.bec.de@localhost>
>To: gnats-bugs%NetBSD.org@localhost
>Cc:
>Subject: Re: kern/39929 (NetBSD 5.0_BETA kernel panics when trying to
> access /dev/rcd0d with growisofs)
>Date: Sun, 30 Nov 2008 23:57:10 +0100
>
> --huq684BweRXVnRxX
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: inline
>
> On Sun, Nov 30, 2008 at 10:54:59PM +0000, joerg%NetBSD.org@localhost wrote:
> > I'll fix it.
>
> Please try the attached patch.
>
> Joerg
>
> --huq684BweRXVnRxX
> Content-Type: text/plain; charset=us-ascii
> Content-Disposition: attachment; filename="genfs_io.c.diff"
>
> Index: genfs_io.c
> ===================================================================
> RCS file: /cvsroot/src/sys/miscfs/genfs/genfs_io.c,v
> retrieving revision 1.15
> diff -u -p -r1.15 genfs_io.c
> --- genfs_io.c 16 Nov 2008 19:34:29 -0000 1.15
> +++ genfs_io.c 30 Nov 2008 22:55:42 -0000
> @@ -1560,6 +1560,8 @@ genfs_directio(struct vnode *vp, struct
> size_t len;
> const int mask = DEV_BSIZE - 1;
> int error;
> + bool need_wapbl = (vp->v_mount && vp->v_mount->mnt_wapbl &&
> + (ioflag & IO_JOURNALLOCKED) == 0);
>
> /*
> * We only support direct I/O to user space for now.
> @@ -1581,7 +1583,7 @@ genfs_directio(struct vnode *vp, struct
> return;
> }
>
> - if ((ioflag & IO_JOURNALLOCKED) == 0) {
> + if (need_wapbl) {
> error = WAPBL_BEGIN(vp->v_mount);
> if (error)
> return;
> @@ -1633,7 +1635,7 @@ genfs_directio(struct vnode *vp, struct
> uio->uio_resid -= len;
> }
>
> - if ((ioflag & IO_JOURNALLOCKED) == 0)
> + if (need_wapbl)
> WAPBL_END(vp->v_mount);
> }
>
>
> --huq684BweRXVnRxX--
>
Now it's working like a charm. :-) Thanks a lot!
--
Best Regards,
Tomasz Homa
Home |
Main Index |
Thread Index |
Old Index