I'm trying to implement wiping of freed swap pages inside swap_pager.
I'm  using 2.2-branch, here is my thoughts and steps:

I have a (starting) block number of swapped page, i know page size, and i
know that i have to use some pool of buffers inside kernel. So i get
buffer with getpbuf(), then fill in b_data, b_blkno, b_bcount, b_bufsize,
b_proc and b_flags fields and call pbgetvp(swapdev_vp,bp) and
VOP_STRATEGY(bp). Then i analize error flag in b_flags and call
pbrelvp(bp) and relpbuf(bp). This code was copied from
getpages/putpages routines, but it hangs kernel and PC. So i misunderstand
something and need help. How can i successfully write down some data to
the known block number on the known device from the kernel? Or maybe
someone can point me where can i find more information on I/O in kernel?

Thank you.

PS. I've read -current manpages, but they didn't help me much. :(





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

Reply via email to