[Drbd-dev] Behaviour of verify: false positives -> true positives
Thomas Schoebel-Theuer
thomas.schoebel-theuer at 1und1.de
Wed Oct 1 13:28:02 CEST 2008
> as private_bio is a clone of master_bio,
> it shares its bvec, thus the pages.
Oops, I didn't realize that (and I tested the copy version only briefly
because I was more interested in the checksumming because of the kernel log
messages). The implications are clear to me.
IMHO best solution would be the existence of a bio_copy() in addition to
bio_clone() in bio.h, but even if we would get it into the upstream it would
not help for elder kernels.
> you need to remember the original pages, and you need to restore them
> before completion of the master bio.
Well, one problem is that the length of bvec could be nearly arbitrary (in
theory), so preclaiming "enough" space in struct drbd_request is probably no
good idea. Well, kmalloc() would be possible to keep the allocation dynamic
without wasting space.
But what about simply generating a completely new bio and copying over all the
stuff by hand? This would mean to implement some sort of bio_copy() in the
local code which could then later be lifted upstreams if other people liked
it too. What do you think is better?
Thanks for feedback,
Thomas
More information about the drbd-dev
mailing list