Messages in this thread | | | Subject | Re: bio_integrity_verify() bug causing READ verify to be silently skipped | From | "Nicholas A. Bellinger" <> | Date | Thu, 16 Jan 2014 21:20:47 -0800 |
| |
On Fri, 2014-01-03 at 15:09 -0500, Martin K. Petersen wrote: > >>>>> "nab" == Nicholas A Bellinger <nab@linux-iscsi.org> writes: > > nab> Given that bio_integrity_verify() is using bio_for_each_segment(), > nab> the loop starts from the updated bio->bi_idx, and not a zero value, > nab> which ends up skipping individual bio segment calls to > nab> bi->verify_fn(). > > That's botched. Verify is meant to be called with the completed bytes > before the index is tampered with. > > > nab> The following patch changes bio_integrity_verify() to use > nab> bio_for_each_segment_all() instead of bio_for_each_segment() to > nab> ensure that the segment walk always starts from zero, regardless of > nab> the current bio->bi_idx value after bio_advance(). > > That breaks partial completion, though. I'll take a look at Kent's > changes... >
Ping..? Any updates on a proper bugfix for this..?
--nab
| |