From: Patrick Farrell Date: Sun, 17 Sep 2023 18:09:01 +0000 (-0400) Subject: LU-13814 osc: add osc transient page ops X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F77%2F52077%2F10;p=fs%2Flustre-release.git LU-13814 osc: add osc transient page ops As part of gradually removing cl_pages for transient pages, create a special set of OSC page operations for them. This makes it easier to see what's left for transient pages and focus on removing that. Test-Parameters: forjanitoronly Test-Parameters: fortestonly Signed-off-by: Patrick Farrell Change-Id: I20bbe7535e8df223ec1fff9b940b3063fcc3f8d7 --- diff --git a/lustre/osc/osc_page.c b/lustre/osc/osc_page.c index 3e8411d..f5b7def 100644 --- a/lustre/osc/osc_page.c +++ b/lustre/osc/osc_page.c @@ -233,6 +233,12 @@ static void osc_page_touch(const struct lu_env *env, osc_page_touch_at(env, obj, osc_index(opg), to); } +static const struct cl_page_operations osc_transient_page_ops = { + .cpo_print = osc_page_print, + .cpo_delete = osc_page_delete, + .cpo_clip = osc_page_clip, +}; + static const struct cl_page_operations osc_page_ops = { .cpo_print = osc_page_print, .cpo_delete = osc_page_delete, @@ -256,7 +262,6 @@ int osc_page_init(const struct lu_env *env, struct cl_io *io, return result; opg->ops_srvlock = osc_io_srvlock(oio); - cl_page_slice_add(cl_page, &opg->ops_cl, obj, &osc_page_ops); if ((lnet_is_rdma_only_page(cl_page->cp_vmpage) || CFS_FAIL_CHECK(OBD_FAIL_OSC_UNALIGNED_RDMA_ONLY)) && @@ -270,8 +275,12 @@ int osc_page_init(const struct lu_env *env, struct cl_io *io, return -EINVAL; } - /* reserve an LRU space for this page */ - if (cl_page->cp_type == CPT_CACHEABLE) { + if (cl_page->cp_type == CPT_TRANSIENT) { + cl_page_slice_add(cl_page, &opg->ops_cl, obj, + &osc_transient_page_ops); + } else if (cl_page->cp_type == CPT_CACHEABLE) { + cl_page_slice_add(cl_page, &opg->ops_cl, obj, &osc_page_ops); + /* reserve an LRU space for this page */ result = osc_lru_alloc(env, osc_cli(osc), opg); if (result == 0) { result = radix_tree_preload(GFP_NOFS);