mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 10:33:41 +02:00
ntfs: Do not kmap page cache pages for compression
These pages are accessed through vmap; they are not accessed by calling page_address(), so they do not need to be kmapped. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
parent
14656154d2
commit
953b79a7a1
|
|
@ -2407,9 +2407,6 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
|
|||
* To simplify decompress algorithm do vmap for source
|
||||
* and target pages.
|
||||
*/
|
||||
for (i = 0; i < pages_per_frame; i++)
|
||||
kmap(pages[i]);
|
||||
|
||||
frame_size = pages_per_frame << PAGE_SHIFT;
|
||||
frame_mem = vmap(pages, pages_per_frame, VM_MAP, PAGE_KERNEL);
|
||||
if (!frame_mem) {
|
||||
|
|
@ -2655,7 +2652,6 @@ int ni_read_frame(struct ntfs_inode *ni, u64 frame_vbo, struct page **pages,
|
|||
out:
|
||||
for (i = 0; i < pages_per_frame; i++) {
|
||||
pg = pages[i];
|
||||
kunmap(pg);
|
||||
SetPageUptodate(pg);
|
||||
}
|
||||
|
||||
|
|
@ -2742,9 +2738,6 @@ int ni_write_frame(struct ntfs_inode *ni, struct page **pages,
|
|||
goto out1;
|
||||
}
|
||||
|
||||
for (i = 0; i < pages_per_frame; i++)
|
||||
kmap(pages[i]);
|
||||
|
||||
/* Map in-memory frame for read-only. */
|
||||
frame_mem = vmap(pages, pages_per_frame, VM_MAP, PAGE_KERNEL_RO);
|
||||
if (!frame_mem) {
|
||||
|
|
@ -2810,11 +2803,7 @@ int ni_write_frame(struct ntfs_inode *ni, struct page **pages,
|
|||
|
||||
out3:
|
||||
vunmap(frame_mem);
|
||||
|
||||
out2:
|
||||
for (i = 0; i < pages_per_frame; i++)
|
||||
kunmap(pages[i]);
|
||||
|
||||
vunmap(frame_ondisk);
|
||||
out1:
|
||||
for (i = 0; i < pages_per_frame; i++) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user