Skip to content

Commit f114d4d

Browse files
NeilBrownOleg Drokin
authored andcommitted
LU-12477 llite: use generic_error_remove_page()
lustre's internal ll_invalidate_page() is behaviourally identical to generic_error_remove_page(). In the case of lustre it isn't a memory hardware error that requires the page being invalidated, it is the loss of a lock, which will likely result in the data changing on the server. In either case, we don't want the page to be accessed any more, so the same removal is appropriate. Linux-commit: d5419b40599b4d6e030695dad30f15347679be66 Change-Id: I92686b5332eec02580563c1bee779688e8e591a3 Acked-by: Oleg Drokin <[email protected]> Signed-off-by: NeilBrown <[email protected]> Reviewed-on: https://review.whamcloud.com/35461 Tested-by: jenkins <[email protected]> Reviewed-by: Lai Siyao <[email protected]> Tested-by: Maloo <[email protected]> Reviewed-by: Oleg Drokin <[email protected]>
1 parent 750fc5b commit f114d4d

File tree

3 files changed

+3
-20
lines changed

3 files changed

+3
-20
lines changed

lustre/llite/llite_internal.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1142,23 +1142,6 @@ void policy_from_vma(union ldlm_policy_data *policy, struct vm_area_struct *vma,
11421142
struct vm_area_struct *our_vma(struct mm_struct *mm, unsigned long addr,
11431143
size_t count);
11441144

1145-
static inline void ll_invalidate_page(struct page *vmpage)
1146-
{
1147-
struct address_space *mapping = vmpage->mapping;
1148-
loff_t offset = vmpage->index << PAGE_SHIFT;
1149-
1150-
LASSERT(PageLocked(vmpage));
1151-
if (mapping == NULL)
1152-
return;
1153-
1154-
/*
1155-
* truncate_complete_page() calls
1156-
* a_ops->invalidatepage()->cl_page_delete()->vvp_page_delete().
1157-
*/
1158-
ll_teardown_mmaps(mapping, offset, offset + PAGE_SIZE);
1159-
truncate_complete_page(mapping, vmpage);
1160-
}
1161-
11621145
#define ll_s2sbi(sb) (s2lsi(sb)->lsi_llsbi)
11631146

11641147
/* don't need an addref as the sb_info should be holding one */

lustre/llite/vvp_io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1239,7 +1239,7 @@ static int vvp_io_fault_start(const struct lu_env *env,
12391239
LASSERT(PageLocked(vmpage));
12401240

12411241
if (OBD_FAIL_CHECK(OBD_FAIL_LLITE_FAULT_TRUNC_RACE))
1242-
ll_invalidate_page(vmpage);
1242+
generic_error_remove_page(vmpage->mapping, vmpage);
12431243

12441244
size = i_size_read(inode);
12451245
/* Though we have already held a cl_lock upon this page, but

lustre/llite/vvp_page.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ static void vvp_page_discard(const struct lu_env *env,
153153
if (vpg->vpg_defer_uptodate && !vpg->vpg_ra_used)
154154
ll_ra_stats_inc(vmpage->mapping->host, RA_STAT_DISCARDED);
155155

156-
ll_invalidate_page(vmpage);
156+
generic_error_remove_page(vmpage->mapping, vmpage);
157157
}
158158

159159
static void vvp_page_delete(const struct lu_env *env,
@@ -281,7 +281,7 @@ static void vvp_page_completion_read(const struct lu_env *env,
281281
/* mirror read failed, it needs to destroy the page
282282
* because subpage would be from wrong osc when trying
283283
* to read from a new mirror */
284-
ll_invalidate_page(vmpage);
284+
generic_error_remove_page(vmpage->mapping, vmpage);
285285
}
286286
}
287287

0 commit comments

Comments
 (0)