diff options
| author | David Howells <[email protected]> | 2020-10-20 08:33:45 +0000 |
|---|---|---|
| committer | David Howells <[email protected]> | 2021-04-23 09:17:27 +0000 |
| commit | e87b03f5830ecd8ca21836d3ee48c74f8d58fa31 (patch) | |
| tree | f802dd5513fa8d9e4881e6b40de1b0f660061dac /fs/afs/file.c | |
| parent | afs: Extract writeback extension into its own function (diff) | |
| download | kernel-e87b03f5830ecd8ca21836d3ee48c74f8d58fa31.tar.gz kernel-e87b03f5830ecd8ca21836d3ee48c74f8d58fa31.zip | |
afs: Prepare for use of THPs
As a prelude to supporting transparent huge pages, use thp_size() and
similar rather than PAGE_SIZE/SHIFT.
Further, try and frame everything in terms of file positions and lengths
rather than page indices and numbers of pages.
Signed-off-by: David Howells <[email protected]>
Tested-By: Marc Dionne <[email protected]>
cc: [email protected]
cc: [email protected]
cc: [email protected]
Link: https://lore.kernel.org/r/160588540227.3465195.4752143929716269062.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/161118155821.1232039.540445038028845740.stgit@warthog.procyon.org.uk/ # rfc
Link: https://lore.kernel.org/r/161161051439.2537118.15577827510426326534.stgit@warthog.procyon.org.uk/ # v2
Link: https://lore.kernel.org/r/161340415869.1303470.6040191748634322355.stgit@warthog.procyon.org.uk/ # v3
Link: https://lore.kernel.org/r/161539559365.286939.18344613540296085269.stgit@warthog.procyon.org.uk/ # v4
Link: https://lore.kernel.org/r/161653815142.2770958.454490670311230206.stgit@warthog.procyon.org.uk/ # v5
Link: https://lore.kernel.org/r/161789098713.6155.16394227991842480300.stgit@warthog.procyon.org.uk/ # v6
Diffstat (limited to 'fs/afs/file.c')
| -rw-r--r-- | fs/afs/file.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/afs/file.c b/fs/afs/file.c index f1e30b89e41c..edf21c8708a3 100644 --- a/fs/afs/file.c +++ b/fs/afs/file.c @@ -329,8 +329,8 @@ static int afs_page_filler(struct key *key, struct page *page) req->vnode = vnode; req->key = key_get(key); req->pos = (loff_t)page->index << PAGE_SHIFT; - req->len = PAGE_SIZE; - req->nr_pages = 1; + req->len = thp_size(page); + req->nr_pages = thp_nr_pages(page); req->done = afs_file_read_done; req->cleanup = afs_file_read_cleanup; @@ -574,8 +574,8 @@ undirty: trace_afs_page_dirty(vnode, tracepoint_string("undirty"), page); clear_page_dirty_for_io(page); full_invalidate: - detach_page_private(page); trace_afs_page_dirty(vnode, tracepoint_string("inval"), page); + detach_page_private(page); } /* @@ -620,8 +620,8 @@ static int afs_releasepage(struct page *page, gfp_t gfp_flags) #endif if (PagePrivate(page)) { - detach_page_private(page); trace_afs_page_dirty(vnode, tracepoint_string("rel"), page); + detach_page_private(page); } /* indicate that the page can be released */ |
