Date: Sat, 14 Feb 1998 22:25:53 -0600 From: Chris Csanady <ccsanady@friley585.res.iastate.edu> To: freebsd-current@FreeBSD.ORG Subject: Soft Updates/CCD's don't work together--larger problems perhaps Message-ID: <199802150425.WAA00407@friley585.res.iastate.edu>
next in thread | raw e-mail | index | archive | help
As I have mentioned before, using Soft Updates and CCD's together cause a panic in softdep_disk_io_initiation(). The problems seem to be related to the ordering of the bioops.io_start() calls in kern/vfs_cluster.c--it is possible to call this function with B_READ, which will immediately causes the panic. A couple thoughts.. Would it be ok to move around the flag assignment as follows? Also, does there really need to be a call to bioops.io_start() from cluster_rbuild? I noticed that OpenBSD has rearranged things so that the flags are set before the call to bioops.io_start(), to avoid just this problem. Also, they do not call it from cluster_rbuild either.. Could someone who knows more about the VFS code have a look at how the Soft Updates code is integrated here? Thanks, Chris *** vfs_cluster.c.old Sat Feb 14 22:16:20 1998 --- vfs_cluster.c Sat Feb 14 21:36:45 1998 *************** *** 722,727 **** --- 722,729 ---- tbp->b_flags &= ~B_DONE; splx(s); } + tbp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI); + tbp->b_flags |= B_ASYNC; /* check for latent dependencies to be handled */ if ((LIST_FIRST(&tbp->b_dep)) != NULL && bioops.io_start) *************** *** 752,759 **** bp->b_bufsize += size; --numdirtybuffers; - tbp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI); - tbp->b_flags |= B_ASYNC; s = splbio(); reassignbuf(tbp, tbp->b_vp); /* put on clean list */ ++tbp->b_vp->v_numoutput; --- 754,759 ---- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199802150425.WAA00407>