Commit e87b03f5 authored by David Howells's avatar David Howells
parent 810caa3e
...@@ -2083,6 +2083,6 @@ static void afs_dir_invalidatepage(struct page *page, unsigned int offset, ...@@ -2083,6 +2083,6 @@ static void afs_dir_invalidatepage(struct page *page, unsigned int offset,
afs_stat_v(dvnode, n_inval); afs_stat_v(dvnode, n_inval);
/* we clean up only if the entire page is being invalidated */ /* we clean up only if the entire page is being invalidated */
if (offset == 0 && length == PAGE_SIZE) if (offset == 0 && length == thp_size(page))
detach_page_private(page); detach_page_private(page);
} }
...@@ -329,8 +329,8 @@ static int afs_page_filler(struct key *key, struct page *page) ...@@ -329,8 +329,8 @@ static int afs_page_filler(struct key *key, struct page *page)
req->vnode = vnode; req->vnode = vnode;
req->key = key_get(key); req->key = key_get(key);
req->pos = (loff_t)page->index << PAGE_SHIFT; req->pos = (loff_t)page->index << PAGE_SHIFT;
req->len = PAGE_SIZE; req->len = thp_size(page);
req->nr_pages = 1; req->nr_pages = thp_nr_pages(page);
req->done = afs_file_read_done; req->done = afs_file_read_done;
req->cleanup = afs_file_read_cleanup; req->cleanup = afs_file_read_cleanup;
...@@ -574,8 +574,8 @@ static void afs_invalidate_dirty(struct page *page, unsigned int offset, ...@@ -574,8 +574,8 @@ static void afs_invalidate_dirty(struct page *page, unsigned int offset,
trace_afs_page_dirty(vnode, tracepoint_string("undirty"), page); trace_afs_page_dirty(vnode, tracepoint_string("undirty"), page);
clear_page_dirty_for_io(page); clear_page_dirty_for_io(page);
full_invalidate: full_invalidate:
detach_page_private(page);
trace_afs_page_dirty(vnode, tracepoint_string("inval"), 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) ...@@ -620,8 +620,8 @@ static int afs_releasepage(struct page *page, gfp_t gfp_flags)
#endif #endif
if (PagePrivate(page)) { if (PagePrivate(page)) {
detach_page_private(page);
trace_afs_page_dirty(vnode, tracepoint_string("rel"), page); trace_afs_page_dirty(vnode, tracepoint_string("rel"), page);
detach_page_private(page);
} }
/* indicate that the page can be released */ /* indicate that the page can be released */
......
...@@ -815,8 +815,6 @@ struct afs_operation { ...@@ -815,8 +815,6 @@ struct afs_operation {
loff_t pos; loff_t pos;
loff_t size; loff_t size;
loff_t i_size; loff_t i_size;
pgoff_t first; /* first page in mapping to deal with */
pgoff_t last; /* last page in mapping to deal with */
bool laundering; /* Laundering page, PG_writeback not set */ bool laundering; /* Laundering page, PG_writeback not set */
} store; } store;
struct { struct {
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment