Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=53017030e2548dffbe481fb4ab6b587abbee6f8b
Commit:     53017030e2548dffbe481fb4ab6b587abbee6f8b
Parent:     009cd09042fbd095e708b412ad7870fb421fa2f0
Author:     Milan Broz <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 8 02:10:38 2008 +0000
Committer:  Alasdair G Kergon <[EMAIL PROTECTED]>
CommitDate: Fri Feb 8 02:10:38 2008 +0000

    dm crypt: move convert_context inside dm_crypt_io
    
    Move convert_context inside dm_crypt_io.
    
    Signed-off-by: Herbert Xu <[EMAIL PROTECTED]>
    Signed-off-by: Milan Broz <[EMAIL PROTECTED]>
    Signed-off-by: Alasdair G Kergon <[EMAIL PROTECTED]>
---
 drivers/md/dm-crypt.c |   41 +++++++++++++++++++++--------------------
 1 files changed, 21 insertions(+), 20 deletions(-)

diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
index 6b66ee4..af8cd99 100644
--- a/drivers/md/dm-crypt.c
+++ b/drivers/md/dm-crypt.c
@@ -28,17 +28,6 @@
 #define MESG_STR(x) x, sizeof(x)
 
 /*
- * per bio private data
- */
-struct dm_crypt_io {
-       struct dm_target *target;
-       struct bio *base_bio;
-       struct work_struct work;
-       atomic_t pending;
-       int error;
-};
-
-/*
  * context holding the current state of a multi-part conversion
  */
 struct convert_context {
@@ -52,6 +41,20 @@ struct convert_context {
        int write;
 };
 
+/*
+ * per bio private data
+ */
+struct dm_crypt_io {
+       struct dm_target *target;
+       struct bio *base_bio;
+       struct work_struct work;
+
+       struct convert_context ctx;
+
+       atomic_t pending;
+       int error;
+};
+
 struct crypt_config;
 
 struct crypt_iv_operations {
@@ -579,13 +582,12 @@ static void process_write(struct dm_crypt_io *io)
        struct crypt_config *cc = io->target->private;
        struct bio *base_bio = io->base_bio;
        struct bio *clone;
-       struct convert_context ctx;
        unsigned remaining = base_bio->bi_size;
        sector_t sector = base_bio->bi_sector - io->target->begin;
 
        atomic_inc(&io->pending);
 
-       crypt_convert_init(cc, &ctx, NULL, base_bio, sector, 1);
+       crypt_convert_init(cc, &io->ctx, NULL, base_bio, sector, 1);
 
        /*
         * The allocated buffers can be smaller than the whole bio,
@@ -598,10 +600,10 @@ static void process_write(struct dm_crypt_io *io)
                        return;
                }
 
-               ctx.bio_out = clone;
-               ctx.idx_out = 0;
+               io->ctx.bio_out = clone;
+               io->ctx.idx_out = 0;
 
-               if (unlikely(crypt_convert(cc, &ctx) < 0)) {
+               if (unlikely(crypt_convert(cc, &io->ctx) < 0)) {
                        crypt_free_buffer_pages(cc, clone);
                        bio_put(clone);
                        crypt_dec_pending(io, -EIO);
@@ -609,7 +611,7 @@ static void process_write(struct dm_crypt_io *io)
                }
 
                /* crypt_convert should have filled the clone bio */
-               BUG_ON(ctx.idx_out < clone->bi_vcnt);
+               BUG_ON(io->ctx.idx_out < clone->bi_vcnt);
 
                clone->bi_sector = cc->start + sector;
                remaining -= clone->bi_size;
@@ -634,12 +636,11 @@ static void process_write(struct dm_crypt_io *io)
 static void process_read_endio(struct dm_crypt_io *io)
 {
        struct crypt_config *cc = io->target->private;
-       struct convert_context ctx;
 
-       crypt_convert_init(cc, &ctx, io->base_bio, io->base_bio,
+       crypt_convert_init(cc, &io->ctx, io->base_bio, io->base_bio,
                           io->base_bio->bi_sector - io->target->begin, 0);
 
-       crypt_dec_pending(io, crypt_convert(cc, &ctx));
+       crypt_dec_pending(io, crypt_convert(cc, &io->ctx));
 }
 
 static void kcryptd_do_work(struct work_struct *work)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to