aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ecryptfs/crypto.c
diff options
context:
space:
mode:
authorTyler Hicks <tyhicks@canonical.com>2013-04-17 02:21:24 -0400
committerTyler Hicks <tyhicks@canonical.com>2013-06-07 20:28:21 -0400
commit12003e5b18ca33807b3f9448309ec92184192b85 (patch)
treed4c9ddf9ff9e70956286c369f4ed0b48edb5da2d /fs/ecryptfs/crypto.c
parentfc8b14d338f6265533a8f82db1325fa112b530ba (diff)
eCryptfs: Use entire helper page during page crypto operations
When encrypting eCryptfs pages and decrypting pages from the lower filesystem, utilize the entire helper page rather than only the first 4096 bytes. This only affects architectures where PAGE_CACHE_SIZE is larger than 4096 bytes. Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Diffstat (limited to 'fs/ecryptfs/crypto.c')
-rw-r--r--fs/ecryptfs/crypto.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
index f71ec125290d..e8976c004669 100644
--- a/fs/ecryptfs/crypto.c
+++ b/fs/ecryptfs/crypto.c
@@ -450,10 +450,11 @@ static int ecryptfs_encrypt_extent(struct page *enc_extent_page,
450 (unsigned long long)(extent_base + extent_offset), rc); 450 (unsigned long long)(extent_base + extent_offset), rc);
451 goto out; 451 goto out;
452 } 452 }
453 rc = ecryptfs_encrypt_page_offset(crypt_stat, enc_extent_page, 0, 453 rc = ecryptfs_encrypt_page_offset(crypt_stat, enc_extent_page,
454 page, (extent_offset 454 extent_offset * crypt_stat->extent_size,
455 * crypt_stat->extent_size), 455 page,
456 crypt_stat->extent_size, extent_iv); 456 extent_offset * crypt_stat->extent_size,
457 crypt_stat->extent_size, extent_iv);
457 if (rc < 0) { 458 if (rc < 0) {
458 printk(KERN_ERR "%s: Error attempting to encrypt page with " 459 printk(KERN_ERR "%s: Error attempting to encrypt page with "
459 "page->index = [%ld], extent_offset = [%ld]; " 460 "page->index = [%ld], extent_offset = [%ld]; "
@@ -520,8 +521,9 @@ int ecryptfs_encrypt_page(struct page *page)
520 * (PAGE_CACHE_SIZE 521 * (PAGE_CACHE_SIZE
521 / crypt_stat->extent_size)) 522 / crypt_stat->extent_size))
522 + extent_offset), crypt_stat); 523 + extent_offset), crypt_stat);
523 rc = ecryptfs_write_lower(ecryptfs_inode, enc_extent_virt, 524 rc = ecryptfs_write_lower(ecryptfs_inode, (enc_extent_virt +
524 offset, crypt_stat->extent_size); 525 extent_offset * crypt_stat->extent_size),
526 offset, crypt_stat->extent_size);
525 if (rc < 0) { 527 if (rc < 0) {
526 ecryptfs_printk(KERN_ERR, "Error attempting " 528 ecryptfs_printk(KERN_ERR, "Error attempting "
527 "to write lower page; rc = [%d]" 529 "to write lower page; rc = [%d]"
@@ -558,10 +560,10 @@ static int ecryptfs_decrypt_extent(struct page *page,
558 goto out; 560 goto out;
559 } 561 }
560 rc = ecryptfs_decrypt_page_offset(crypt_stat, page, 562 rc = ecryptfs_decrypt_page_offset(crypt_stat, page,
561 (extent_offset 563 extent_offset * crypt_stat->extent_size,
562 * crypt_stat->extent_size), 564 enc_extent_page,
563 enc_extent_page, 0, 565 extent_offset * crypt_stat->extent_size,
564 crypt_stat->extent_size, extent_iv); 566 crypt_stat->extent_size, extent_iv);
565 if (rc < 0) { 567 if (rc < 0) {
566 printk(KERN_ERR "%s: Error attempting to decrypt to page with " 568 printk(KERN_ERR "%s: Error attempting to decrypt to page with "
567 "page->index = [%ld], extent_offset = [%ld]; " 569 "page->index = [%ld], extent_offset = [%ld]; "
@@ -620,9 +622,10 @@ int ecryptfs_decrypt_page(struct page *page)
620 &offset, ((page->index * (PAGE_CACHE_SIZE 622 &offset, ((page->index * (PAGE_CACHE_SIZE
621 / crypt_stat->extent_size)) 623 / crypt_stat->extent_size))
622 + extent_offset), crypt_stat); 624 + extent_offset), crypt_stat);
623 rc = ecryptfs_read_lower(enc_extent_virt, offset, 625 rc = ecryptfs_read_lower((enc_extent_virt +
624 crypt_stat->extent_size, 626 extent_offset * crypt_stat->extent_size),
625 ecryptfs_inode); 627 offset, crypt_stat->extent_size,
628 ecryptfs_inode);
626 if (rc < 0) { 629 if (rc < 0) {
627 ecryptfs_printk(KERN_ERR, "Error attempting " 630 ecryptfs_printk(KERN_ERR, "Error attempting "
628 "to read lower page; rc = [%d]" 631 "to read lower page; rc = [%d]"