|
@@ -282,10 +282,8 @@ int virt_to_scatterlist(const void *addr, int size, struct scatterlist *sg,
|
|
while (size > 0 && i < sg_size) {
|
|
while (size > 0 && i < sg_size) {
|
|
pg = virt_to_page(addr);
|
|
pg = virt_to_page(addr);
|
|
offset = offset_in_page(addr);
|
|
offset = offset_in_page(addr);
|
|
- if (sg) {
|
|
|
|
- sg_set_page(&sg[i], pg);
|
|
|
|
- sg[i].offset = offset;
|
|
|
|
- }
|
|
|
|
|
|
+ if (sg)
|
|
|
|
+ sg_set_page(&sg[i], pg, 0, offset);
|
|
remainder_of_page = PAGE_CACHE_SIZE - offset;
|
|
remainder_of_page = PAGE_CACHE_SIZE - offset;
|
|
if (size >= remainder_of_page) {
|
|
if (size >= remainder_of_page) {
|
|
if (sg)
|
|
if (sg)
|
|
@@ -716,12 +714,8 @@ ecryptfs_encrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
|
|
sg_init_table(&src_sg, 1);
|
|
sg_init_table(&src_sg, 1);
|
|
sg_init_table(&dst_sg, 1);
|
|
sg_init_table(&dst_sg, 1);
|
|
|
|
|
|
- sg_set_page(&src_sg, src_page);
|
|
|
|
- src_sg.offset = src_offset;
|
|
|
|
- src_sg.length = size;
|
|
|
|
- sg_set_page(&dst_sg, dst_page);
|
|
|
|
- dst_sg.offset = dst_offset;
|
|
|
|
- dst_sg.length = size;
|
|
|
|
|
|
+ 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);
|
|
return encrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -746,14 +740,11 @@ ecryptfs_decrypt_page_offset(struct ecryptfs_crypt_stat *crypt_stat,
|
|
struct scatterlist src_sg, dst_sg;
|
|
struct scatterlist src_sg, dst_sg;
|
|
|
|
|
|
sg_init_table(&src_sg, 1);
|
|
sg_init_table(&src_sg, 1);
|
|
|
|
+ sg_set_page(&src_sg, src_page, size, src_offset);
|
|
|
|
+
|
|
sg_init_table(&dst_sg, 1);
|
|
sg_init_table(&dst_sg, 1);
|
|
|
|
+ sg_set_page(&dst_sg, dst_page, size, dst_offset);
|
|
|
|
|
|
- sg_set_page(&src_sg, src_page);
|
|
|
|
- src_sg.offset = src_offset;
|
|
|
|
- src_sg.length = size;
|
|
|
|
- sg_set_page(&dst_sg, dst_page);
|
|
|
|
- dst_sg.offset = dst_offset;
|
|
|
|
- dst_sg.length = size;
|
|
|
|
return decrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
|
|
return decrypt_scatterlist(crypt_stat, &dst_sg, &src_sg, size, iv);
|
|
}
|
|
}
|
|
|
|
|