- 10 Oct, 2008 7 commits
-
-
Milan Broz authored
Move the initialisation of ctx->pending into one place, at the start of crypt_convert(). Introduce crypt_finished to indicate whether or not the encryption is finished, for use in a later patch. No functional change. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
The pending reference count must be incremented *before* the async work is queued to another thread, not after. Otherwise there's a race if the work completes and decrements the reference count before it gets incremented. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Make kcryptd_crypt_write_io_submit() responsible for decrementing the pending count after an error. Also fixes a bug in the async path that forgot to decrement it. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Alasdair G Kergon authored
Make the caller reponsible for incrementing the pending count before calling kcryptd_crypt_write_io_submit() in the non-async case to bring it into line with the async case. Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Move kcryptd_crypt_write_convert_loop inside kcryptd_crypt_write_convert. This change is needed for a later patch. No functional change. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Factor out crypt io allocation code. Later patches will call it from another place. No functional change. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Move io pending to one place. No functional change, usefull to simplify debugging. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
- 21 Jul, 2008 1 commit
-
-
Milan Broz authored
This patch implements biovec merge function for crypt target. If the underlying device has merge function defined, call it. If not, keep precomputed value. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
- 02 Jul, 2008 1 commit
-
-
Milan Broz authored
Add cond_resched() to prevent monopolising CPU when processing large bios. dm-crypt processes encryption of bios in sector units. If the bio request is big it can spend a long time in the encryption call. Signed-off-by:
Milan Broz <mbroz@redhat.com> Tested-by:
Yan Li <elliot.li.tech@gmail.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
- 28 Mar, 2008 1 commit
-
-
Milan Broz authored
Fix regression in dm-crypt introduced in commit 3a7f6c99 ("dm crypt: use async crypto"). If write requests need to be split into pieces, the code must not process them in parallel because the crypto context cannot be shared. So there can be parallel crypto operations on one part of the write, but only one write bio can be processed at a time. This is not optimal and the workqueue code needs to be optimized for parallel processing, but for now it solves the problem without affecting the performance of synchronous crypto operation (most of current dm-crypt users). http://bugzilla.kernel.org/show_bug.cgi?id=10242 http://bugzilla.kernel.org/show_bug.cgi?id=10207 Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- 08 Feb, 2008 15 commits
-
-
Milan Broz authored
dm-crypt: Use crypto ablkcipher interface Move encrypt/decrypt core to async crypto call. Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
dm-crypt: Use crypto ablkcipher interface Prepare callback function for async crypto operation. Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
dm-crypt: Use crypto ablkcipher interface Prepare completion for async crypto request. Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
dm-crypt: Use crypto ablkcipher interface Introduce mempool for async crypto requests. cc->req is used mainly during synchronous operations (to prevent allocation and deallocation of the same object). Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
dm-crypt: Use crypto ablkcipher interface Move scatterlists to separate dm_crypt_struct and pick out block processing from crypt_convert. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Make io reference counting more obvious. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Introduce crypt_write_io_loop(). Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Process write request in separate function and queue final bio through io workqueue. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Add sector into dm_crypt_io instead of using local variable. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Alasdair G Kergon authored
Reorder kcryptd functions for clarity. Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Rename functions to follow calling convention. Prepare write io error processing function skeleton. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Simplify crypt_endio function. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Move error code setting outside of crypt_dec_pending function. Use -EIO if crypt_convert_scatterlist() fails. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Remove write attribute from convert_context and use bio flag instead. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Move convert_context inside dm_crypt_io. Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
- 20 Dec, 2007 2 commits
-
-
Milan Broz authored
Fix possible max_phys_segments violation in cloned dm-crypt bio. In write operation dm-crypt needs to allocate new bio request and run crypto operation on this clone. Cloned request has always the same size, but number of physical segments can be increased and violate max_phys_segments restriction. This can lead to data corruption and serious hardware malfunction. This was observed when using XFS over dm-crypt and at least two HBA controller drivers (arcmsr, cciss) recently. Fix it by using bio_add_page() call (which tests for other restrictions too) instead of constructing own biovec. All versions of dm-crypt are affected by this bug. Cc: stable@kernel.org Cc: dm-crypt@saout.de Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Fix BIO_UPTODATE test for write io. Cc: stable@kernel.org Cc: dm-crypt@saout.de Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
- 27 Oct, 2007 1 commit
-
-
Herbert Xu authored
This patch fixes the errors made in the users of the crypto layer during the sg_init_table conversion. It also adds a few conversions that were missing altogether. Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
David S. Miller <davem@davemloft.net>
-
- 24 Oct, 2007 1 commit
-
-
Jens Axboe authored
Most drivers need to set length and offset as well, so may as well fold those three lines into one. Add sg_assign_page() for those two locations that only needed to set the page, where the offset/length is set outside of the function context. Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
-
- 22 Oct, 2007 1 commit
-
-
Jens Axboe authored
Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
-
- 20 Oct, 2007 7 commits
-
-
Milan Broz authored
Add crypt prefix to dec_pending to avoid confusing it in backtraces with the dm core function of the same name. No functional change here. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Replace numbers with names in labels in error paths, to avoid confusion when new one get added between existing ones. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Clean up, convert some spaces to tabs. No functional change here. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Add post-processing queue (per crypt device) for read operations. Current implementation uses only one queue for all operations and this can lead to starvation caused by many requests waiting for memory allocation. But the needed memory-releasing operation is queued after these requests (in the same queue). Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Milan Broz authored
Use a separate single-threaded workqueue for each crypt device instead of one global workqueue. Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Dmitry Monakhov authored
Insert missing kfree() in crypt_iv_essiv_ctr() error path. Signed-off-by:
Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
Dmitry Monakhov authored
Add a missing 'dm_put_device' in an error path in crypt target constructor. Signed-off-by:
Dmitry Monakhov <dmonakhov@openvz.org> Signed-off-by:
Milan Broz <mbroz@redhat.com> Signed-off-by:
Alasdair G Kergon <agk@redhat.com>
-
- 19 Oct, 2007 1 commit
-
-
Robert P. J. Day authored
Fix the various misspellings of "system", controller", "interrupt" and "[un]necessary". Signed-off-by:
Robert P. J. Day <rpjday@mindspring.com> Signed-off-by:
Adrian Bunk <bunk@kernel.org>
-
- 16 Oct, 2007 1 commit
-
-
Neil Brown authored
dm-crypt used the ->bi_size member in the bio endio handling to free the appropriate pages, but it frees all of it from both call paths. With the ->bi_end_io() changes, ->bi_size was always 0 since we don't do partial completes. This caused dm-crypt to leak memory. Fix this by removing the size argument from crypt_free_buffer_pages(). Signed-off-by:
Neil Brown <neilb@suse.de> Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
-
- 10 Oct, 2007 1 commit
-
-
NeilBrown authored
As bi_end_io is only called once when the reqeust is complete, the 'size' argument is now redundant. Remove it. Now there is no need for bio_endio to subtract the size completed from bi_size. So don't do that either. While we are at it, change bi_end_io to return void. Signed-off-by:
Neil Brown <neilb@suse.de> Signed-off-by:
Jens Axboe <jens.axboe@oracle.com>
-