CHROMIUM: md: dm-verity: call to verity_error missing
authorPaul Taysom <taysom@chromium.org>
Mon, 25 Mar 2013 02:58:17 +0000 (19:58 -0700)
committerChromeBot <chrome-bot@google.com>
Thu, 4 Apr 2013 23:32:32 +0000 (16:32 -0700)
The code path going through verity_work, was not calling
verity_error. This meant invalid block errors were not
being passed to the verity-chromeos error handler.

BUG=chromium:222545
TEST=manually corrupt root file system, reboot

Change-Id: I1f1c81feccc6ca5654dc81de3edfc97f240bea01
Signed-off-by: Paul Taysom <taysom@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/46376
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
drivers/md/dm-verity.c

index cb48412..a7ce4dd 100644 (file)
@@ -551,6 +551,8 @@ static void verity_finish_io(struct dm_verity_io *io, int error)
        struct bio *bio = io->bio;
        struct dm_verity *v = io->v;
 
+       if (error)
+               verity_error(v, io, error);
        bio->bi_end_io = io->orig_bi_end_io;
        bio->bi_private = io->orig_bi_private;
 
@@ -573,12 +575,6 @@ static void verity_end_io(struct bio *bio, int error)
 {
        struct dm_verity_io *io = bio->bi_private;
 
-       if (error) {
-               verity_error(io->v, io, error);
-               verity_finish_io(io, error);
-               return;
-       }
-
        INIT_WORK(&io->work, verity_work);
        queue_work(io->v->verify_wq, &io->work);
 }