Ahh, I see the mistake.

All you need to fix this is to add a new function:

        void
        flushswchainbuf(struct buf *nbp)
        {
                if (nbp->b_bcount) {
                        nbp->b_bufsize = nbp->b_bcount;
                        if ((nbp->b_flags & B_READ) == 0)
                                nbp->b_dirtyend = nbp->b_bcount;
                        BUF_KERNPROC(nbp);
                        swstrategy(nbp);
                } else {
                        biodone(nbp);
                }
        }

And use this instead of flushchainbuf() in swap_pager_strategy().

--
Poul-Henning Kamp             FreeBSD coreteam member
[EMAIL PROTECTED]               "Real hackers run -current on their laptop."
FreeBSD -- It will take a long time before progress goes too far!


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to