Whamcloud - gitweb
LU-13814 clio: remove cl_page_delete for transient 80/52080/20
authorPatrick Farrell <paf0187@gmail.com>
Wed, 29 May 2024 15:16:52 +0000 (11:16 -0400)
committerOleg Drokin <green@whamcloud.com>
Wed, 31 Jul 2024 15:56:16 +0000 (15:56 +0000)
cl_page_delete no longer does anything for transient pages,
so do not call it for them.

Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I666cceaa1f05bf7e86fb60782eb573d5714051ee
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52080
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Qian Yingjin <qian@ddn.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
lustre/obdclass/cl_io.c
lustre/obdclass/cl_page.c

index 0c409fe..f00699c 100644 (file)
@@ -1208,7 +1208,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 c496b6c..3cc5e0b 100644 (file)
@@ -789,15 +789,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)