]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - fs/ecryptfs/crypto.c
Pull cpuidle into release branch
[mv-sheeva.git] / fs / ecryptfs / crypto.c
index e890d596da7eea80cfc990fdbc89494a444a4a36..9d70289f7df328022e050bbcb3723923524c562f 100644 (file)
@@ -279,13 +279,13 @@ int virt_to_scatterlist(const void *addr, int size, struct scatterlist *sg,
        int offset;
        int remainder_of_page;
 
+       sg_init_table(sg, sg_size);
+
        while (size > 0 && i < sg_size) {
                pg = virt_to_page(addr);
                offset = offset_in_page(addr);
-               if (sg) {
-                       sg[i].page = pg;
-                       sg[i].offset = offset;
-               }
+               if (sg)
+                       sg_set_page(&sg[i], pg, 0, offset);
                remainder_of_page = PAGE_CACHE_SIZE - offset;
                if (size >= remainder_of_page) {
                        if (sg)
@@ -605,14 +605,14 @@ int ecryptfs_decrypt_page(struct page *page)
                        printk(KERN_ERR "%s: Error attempting to copy "
                               "page at index [%ld]\n", __FUNCTION__,
                               page->index);
-               goto out_clear_uptodate;
+               goto out;
        }
        enc_extent_virt = kmalloc(PAGE_CACHE_SIZE, GFP_USER);
        if (!enc_extent_virt) {
                rc = -ENOMEM;
                ecryptfs_printk(KERN_ERR, "Error allocating memory for "
                                "encrypted extent\n");
-               goto out_clear_uptodate;
+               goto out;
        }
        enc_extent_page = virt_to_page(enc_extent_virt);
        for (extent_offset = 0;
@@ -631,21 +631,17 @@ int ecryptfs_decrypt_page(struct page *page)
                        ecryptfs_printk(KERN_ERR, "Error attempting "
                                        "to read lower page; rc = [%d]"
                                        "\n", rc);
-                       goto out_clear_uptodate;
+                       goto out;
                }
                rc = ecryptfs_decrypt_extent(page, crypt_stat, enc_extent_page,
                                             extent_offset);
                if (rc) {
                        printk(KERN_ERR "%s: Error encrypting extent; "
                               "rc = [%d]\n", __FUNCTION__, rc);
-                       goto out_clear_uptodate;
+                       goto out;
                }
                extent_offset++;
        }
-       SetPageUptodate(page);
-       goto out;
-out_clear_uptodate:
-       ClearPageUptodate(page);
 out:
        kfree(enc_extent_virt);
        return rc;
@@ -717,12 +713,11 @@ ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
 {
        struct scatterlist src_sg, dst_sg;
 
-       src_sg.page = src_page;
-       src_sg.offset = src_offset;
-       src_sg.length = size;
-       dst_sg.page = dst_page;
-       dst_sg.offset = dst_offset;
-       dst_sg.length = size;
+       sg_init_table(&src_sg, 1);
+       sg_init_table(&dst_sg, 1);
+
+       sg_set_page(&src_sg, src_page, size, src_offset);
+       sg_set_page(&dst_sg, dst_page, size, dst_offset);
        return encrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
 }
 
@@ -746,12 +741,12 @@ ecryptfs_decrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
 {
        struct scatterlist src_sg, dst_sg;
 
-       src_sg.page = src_page;
-       src_sg.offset = src_offset;
-       src_sg.length = size;
-       dst_sg.page = dst_page;
-       dst_sg.offset = dst_offset;
-       dst_sg.length = size;
+       sg_init_table(&src_sg, 1);
+       sg_set_page(&src_sg, src_page, size, src_offset);
+
+       sg_init_table(&dst_sg, 1);
+       sg_set_page(&dst_sg, dst_page, size, dst_offset);
+
        return decrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
 }