Files
linux/fs
Nicholas Bellinger 68c52c3ef8 bio-integrity: Fix bio_integrity_verify segment start bug
commit 5837c80e87 upstream.

This patch addresses a bug in bio_integrity_verify() code that has
been causing DIF READ verify operations to be silently skipped.

The issue is that bio->bi_idx will have been incremented within
bio_advance() code in the normal blk_update_request() ->
req_bio_endio() completion path, and bio_integrity_verify() is
using bio_for_each_segment() which starts the bio segment walk
at the current bio->bi_idx.

So instead use bio_for_each_segment_all() to always start the bio
segment walk from zero, regardless of the current bio->bi_idx
value after bio_advance() has been called.

(Context change for v3.10.y -> v3.13.y code - nab)

Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-23 21:38:21 -07:00
..
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2014-03-06 21:30:06 -08:00
2013-03-12 18:55:21 -07:00
2014-02-13 13:47:59 -08:00
2013-05-24 16:22:51 -07:00
2013-07-13 11:42:26 -07:00
2013-04-29 15:41:42 -04:00
2013-11-13 12:05:31 +09:00
2013-03-23 14:15:31 -07:00
2014-02-13 13:48:00 -08:00
2013-05-07 20:16:25 -07:00
2014-03-23 21:38:09 -07:00
2013-08-14 22:59:10 -07:00
2013-07-21 18:21:36 -07:00
2014-03-06 21:30:06 -08:00
2013-04-29 15:40:23 -04:00
2013-10-05 07:13:09 -07:00
2012-10-22 08:50:37 +03:00
2013-05-07 20:16:25 -07:00
2013-02-22 23:31:31 -05:00
2013-02-22 23:31:31 -05:00
2013-04-17 13:25:09 +01:00
2012-12-20 18:46:29 -05:00
2013-02-22 23:31:31 -05:00
2013-05-31 15:16:33 -04:00
2013-02-22 23:31:31 -05:00
2014-02-13 13:47:59 -08:00
2013-02-26 02:46:08 -05:00
2013-08-04 16:51:15 +08:00