Whamcloud - gitweb
LU-13814 clio: remove cl_page_delete for transient 80/52080/10
authorPatrick Farrell <pfarrell@whamcloud.com>
Thu, 24 Aug 2023 15:43:53 +0000 (11:43 -0400)
committerPatrick Farrell <pfarrell@whamcloud.com>
Sun, 17 Sep 2023 19:00:09 +0000 (15:00 -0400)
cl_page_delete no longer does anything for transient pages,
so do not call it for them.

Test-Parameters: forjanitoronly
Test-Parameters: fortestonly
Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: I666cceaa1f05bf7e86fb60782eb573d5714051ee

lustre/obdclass/cl_io.c
lustre/obdclass/cl_page.c

index fac274f..f2ec05a 100644 (file)
@@ -1214,7 +1214,6 @@ static void cl_sub_dio_end(const struct lu_env *env, struct cl_sync_io *anchor)
        while (sdio->csd_pages.pl_nr > 0) {
                struct cl_page *page = cl_page_list_first(&sdio->csd_pages);
 
-               cl_page_delete(env, page);
                cl_page_list_del(env, &sdio->csd_pages, page, false);
                cl_page_put(env, page);
        }
index 87efdf6..c373ce3 100644 (file)
@@ -817,15 +817,16 @@ static void __cl_page_delete(const struct lu_env *env, struct cl_page *cp)
 
        ENTRY;
 
+       if (cp->cp_type == CPT_TRANSIENT)
+               EXIT;
+
        /*
         * Severe all ways to obtain new pointers to @pg.
         * Transient pages already can't be found because they're not in cache.
         */
-       if (cp->cp_type != CPT_TRANSIENT) {
-               PASSERT(env, cp, cp->cp_state != CPS_FREEING);
-               cl_page_owner_clear(cp);
-               __cl_page_state_set(env, cp, CPS_FREEING);
-       }
+       PASSERT(env, cp, cp->cp_state != CPS_FREEING);
+       cl_page_owner_clear(cp);
+       __cl_page_state_set(env, cp, CPS_FREEING);
 
        cl_page_slice_for_each_reverse(cp, slice, i) {
                if (slice->cpl_ops->cpo_delete != NULL)