All of lore.kernel.org
 help / color / mirror / Atom feed
From: Piet Delaney <piet@bluelane.com>
To: linux-kernel@vger.kernel.org
Cc: dm-crypt@saout.de
Subject: Re: [stable][PATCH < 2.6.19] Fix data corruption with dm-crypt over RAID5
Date: Thu, 22 Feb 2007 18:49:14 -0800	[thread overview]
Message-ID: <erlknb$khn$1@sea.gmane.org> (raw)
In-Reply-To: 1165026476.29307.23.camel@leto.intern.saout.de

Christophe Saout wrote:

> Fix corruption issue with dm-crypt on top of software raid5. Cancelled
> readahead bio's that report no error, just have BIO_UPTODATE cleared
> were reported as successful reads to the higher layers (and leaving
> random content in the buffer cache). Already fixed in 2.6.19.
> 
> Signed-off-by: Christophe Saout <christophe@saout.de>
> 
> 
> --- linux-2.6.18.orig/drivers/md/dm-crypt.c   2006-09-20 05:42:06.000000000
> +0200
> +++ linux-2.6.18/drivers/md/dm-crypt.c        2006-12-02 03:03:36.000000000 +0100
> @@ -717,13 +717,15 @@
>  if (bio->bi_size)
>  return 1;
>  
> +     if (!bio_flagged(bio, BIO_UPTODATE) && !error)
> +             error = -EIO;
> +
>  bio_put(bio);
>  
>  /*
>  * successful reads are decrypted by the worker thread
>  */
> -     if ((bio_data_dir(bio) == READ)
> -         && bio_flagged(bio, BIO_UPTODATE)) {
> +     if (bio_data_dir(io->bio) == READ && !error) {
>  kcryptd_queue_io(io);

Why doesn't kcryptd_queue_io() check the return value from queue_work()?


    476 static void kcryptd_queue_io(struct crypt_io *io)
    477 {
    478         INIT_WORK(&io->work, kcryptd_do_work, io);
    479         queue_work(_kcryptd_workqueue, &io->work);
    480 }

-piet

>  return 0;
>  }



      parent reply	other threads:[~2007-02-23  2:50 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <456B732F.6080906@lelik.org>
     [not found] ` <20061129145208.GQ4409@agk.surrey.redhat.com>
     [not found]   ` <456F46E3.6030702@lelik.org>
     [not found]     ` <1164983209.24524.20.camel@leto.intern.saout.de>
     [not found]       ` <20061201152143.GE4409@agk.surrey.redhat.com>
     [not found]         ` <45704B95.3020308@lelik.org>
     [not found]           ` <1165026116.29307.18.camel@leto.intern.saout.de>
2006-12-02  2:27             ` [stable][PATCH < 2.6.19] Fix data corruption with dm-crypt over RAID5 Christophe Saout
2006-12-02  2:27             ` Christophe Saout
2006-12-02  3:49               ` Chris Wright
2006-12-02 11:00                 ` Christophe Saout
     [not found]               ` <1165026476.29307.23.camel-EBVayWzc4uH0B753RsUbJiEWGD4kr0XT@public.gmane.org>
2007-01-17  8:44                 ` [dm-devel] " Piet Delaney
2007-01-17  8:44                   ` Piet Delaney
2007-01-22 13:38                   ` [dm-crypt] " Christophe Saout
2007-01-23  2:19                     ` Piet Delaney
2007-01-23  2:19                     ` Piet Delaney
2007-02-23  2:49               ` Piet Delaney [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='erlknb$khn$1@sea.gmane.org' \
    --to=piet@bluelane.com \
    --cc=dm-crypt@saout.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.