From 8ac3b9c423c668d99b8b8c2a8e0ae38de60c1100 Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Wed, 29 May 2024 11:16:39 -0400 Subject: [PATCH] LU-13814 clio: remove discard for transient pages With cl_page_delete removed for transient pages, now cl_page_discard doesn't do anything for transient pages. Remove it. Signed-off-by: Patrick Farrell Change-Id: Ib62e8a5aea71669428b7b61ba989867702bf1758 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52081 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Qian Yingjin Reviewed-by: Sebastien Buisson Reviewed-by: Oleg Drokin Reviewed-by: Andreas Dilger --- lustre/llite/rw26.c | 1 - lustre/obdclass/cl_page.c | 18 ++++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lustre/llite/rw26.c b/lustre/llite/rw26.c index 5a5f6fc..72851ae 100644 --- a/lustre/llite/rw26.c +++ b/lustre/llite/rw26.c @@ -451,7 +451,6 @@ ll_direct_rw_pages(const struct lu_env *env, struct cl_io *io, size_t size, } out: - cl_2queue_discard(env, io, queue); cl_2queue_disown(env, queue); cl_2queue_fini(env, queue); RETURN(rc); diff --git a/lustre/obdclass/cl_page.c b/lustre/obdclass/cl_page.c index 350e087..c496b6c 100644 --- a/lustre/obdclass/cl_page.c +++ b/lustre/obdclass/cl_page.c @@ -761,21 +761,19 @@ void cl_page_discard(const struct lu_env *env, const struct cl_page_slice *slice; int i; + LASSERT(cp->cp_type != CPT_TRANSIENT); + cl_page_slice_for_each(cp, slice, i) { if (slice->cpl_ops->cpo_discard != NULL) (*slice->cpl_ops->cpo_discard)(env, slice, io); } - if (cp->cp_type == CPT_CACHEABLE) { - PINVRNT(env, cp, cl_page_is_owned(cp, io)); - PINVRNT(env, cp, cl_page_invariant(cp)); - vmpage = cp->cp_vmpage; - LASSERT(vmpage != NULL); - LASSERT(PageLocked(vmpage)); - generic_error_remove_folio(vmpage->mapping, page_folio(vmpage)); - } else { - cl_page_delete(env, cp); - } + PINVRNT(env, cp, cl_page_is_owned(cp, io)); + PINVRNT(env, cp, cl_page_invariant(cp)); + vmpage = cp->cp_vmpage; + LASSERT(vmpage != NULL); + LASSERT(PageLocked(vmpage)); + generic_error_remove_folio(vmpage->mapping, page_folio(vmpage)); } EXPORT_SYMBOL(cl_page_discard); -- 1.8.3.1