Whamcloud - gitweb
LU-13814 osc: specialize osc_page_delete 78/52078/10
authorPatrick Farrell <pfarrell@whamcloud.com>
Thu, 24 Aug 2023 14:36:57 +0000 (10:36 -0400)
committerPatrick Farrell <pfarrell@whamcloud.com>
Sun, 17 Sep 2023 19:00:06 +0000 (15:00 -0400)
Nearly all of osc_page_delete is only done for cacheable
pages, so make that explicit.

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

lustre/osc/osc_page.c

index f5b7def..7414ea4 100644 (file)
@@ -170,18 +170,19 @@ static void osc_page_delete(const struct lu_env *env,
        ENTRY;
        CDEBUG(D_TRACE, "%p\n", opg);
        osc_page_transfer_put(env, opg);
-       rc = osc_teardown_async_page(env, obj, opg);
-       if (rc) {
-               CL_PAGE_DEBUG(D_ERROR, env, slice->cpl_page,
-                             "Trying to teardown failed: %d\n", rc);
-               LASSERT(0);
-       }
-
-       osc_lru_del(osc_cli(obj), opg);
 
        if (slice->cpl_page->cp_type == CPT_CACHEABLE) {
                void *value = NULL;
 
+               rc = osc_teardown_async_page(env, obj, opg);
+               if (rc) {
+                       CL_PAGE_DEBUG(D_ERROR, env, slice->cpl_page,
+                                     "Trying to teardown failed: %d\n", rc);
+                       LASSERT(0);
+               }
+
+               osc_lru_del(osc_cli(obj), opg);
+
                spin_lock(&obj->oo_tree_lock);
                if (opg->ops_intree) {
                        value = radix_tree_delete(&obj->oo_tree,