Whamcloud - gitweb
LU-3321 clio: add pages into writeback cache in batch
[fs/lustre-release.git] / lustre / osc / osc_page.c
index a673b91..2b405f4 100644 (file)
@@ -182,15 +182,15 @@ static void osc_page_transfer_get(struct osc_page *opg, const char *label)
 }
 
 static void osc_page_transfer_put(const struct lu_env *env,
-                                  struct osc_page *opg)
+                                 struct osc_page *opg)
 {
-        struct cl_page *page = cl_page_top(opg->ops_cl.cpl_page);
+       struct cl_page *page = cl_page_top(opg->ops_cl.cpl_page);
 
-        if (opg->ops_transfer_pinned) {
-                lu_ref_del(&page->cp_reference, "transfer", page);
-                opg->ops_transfer_pinned = 0;
-                cl_page_put(env, page);
-        }
+       if (opg->ops_transfer_pinned) {
+               opg->ops_transfer_pinned = 0;
+               lu_ref_del(&page->cp_reference, "transfer", page);
+               cl_page_put(env, page);
+       }
 }
 
 /**
@@ -213,11 +213,9 @@ static void osc_page_transfer_add(const struct lu_env *env,
        spin_unlock(&obj->oo_seatbelt);
 }
 
-static int osc_page_cache_add(const struct lu_env *env,
-                             const struct cl_page_slice *slice,
-                             struct cl_io *io)
+int osc_page_cache_add(const struct lu_env *env,
+                       const struct cl_page_slice *slice, struct cl_io *io)
 {
-       struct osc_io   *oio = osc_env_io(env);
        struct osc_page *opg = cl2osc_page(slice);
        int result;
        ENTRY;
@@ -231,16 +229,6 @@ static int osc_page_cache_add(const struct lu_env *env,
        else
                osc_page_transfer_add(env, opg, CRT_WRITE);
 
-       /* for sync write, kernel will wait for this page to be flushed before
-        * osc_io_end() is called, so release it earlier.
-        * for mkwrite(), it's known there is no further pages. */
-       if (cl_io_is_sync_write(io) || cl_io_is_mkwrite(io)) {
-               if (oio->oi_active != NULL) {
-                       osc_extent_release(env, oio->oi_active);
-                       oio->oi_active = NULL;
-               }
-       }
-
        RETURN(result);
 }
 
@@ -332,18 +320,6 @@ static void osc_page_completion_write(const struct lu_env *env,
 {
 }
 
-static int osc_page_fail(const struct lu_env *env,
-                         const struct cl_page_slice *slice,
-                         struct cl_io *unused)
-{
-        /*
-         * Cached read?
-         */
-        LBUG();
-        return 0;
-}
-
-
 static const char *osc_list(cfs_list_t *head)
 {
         return cfs_list_empty(head) ? "-" : "+";
@@ -495,18 +471,16 @@ static int osc_page_flush(const struct lu_env *env,
 }
 
 static const struct cl_page_operations osc_page_ops = {
-        .cpo_fini          = osc_page_fini,
-        .cpo_print         = osc_page_print,
-        .cpo_delete        = osc_page_delete,
-        .cpo_is_under_lock = osc_page_is_under_lock,
-        .cpo_disown        = osc_page_disown,
-        .io = {
-                [CRT_READ] = {
-                        .cpo_cache_add  = osc_page_fail,
-                        .cpo_completion = osc_page_completion_read
-                },
-                [CRT_WRITE] = {
-                       .cpo_cache_add  = osc_page_cache_add,
+       .cpo_fini          = osc_page_fini,
+       .cpo_print         = osc_page_print,
+       .cpo_delete        = osc_page_delete,
+       .cpo_is_under_lock = osc_page_is_under_lock,
+       .cpo_disown        = osc_page_disown,
+       .io = {
+               [CRT_READ] = {
+                       .cpo_completion = osc_page_completion_read
+               },
+               [CRT_WRITE] = {
                        .cpo_completion = osc_page_completion_write
                }
        },