Whamcloud - gitweb
LU-11290 osc: Batch gang_lookup cbs
[fs/lustre-release.git] / lustre / osc / osc_lock.c
index 3d0cf0f..a440fda 100644 (file)
@@ -648,15 +648,21 @@ out:
 EXPORT_SYMBOL(osc_ldlm_glimpse_ast);
 
 static bool weigh_cb(const struct lu_env *env, struct cl_io *io,
-                    struct osc_page *ops, void *cbdata)
+                    void **pvec, int count, void *cbdata)
 {
-       struct cl_page *page = ops->ops_cl.cpl_page;
+       int i;
 
-       if (cl_page_is_vmlocked(env, page) || PageDirty(page->cp_vmpage) ||
-           PageWriteback(page->cp_vmpage))
-               return false;
+       for (i = 0; i < count; i++) {
+               struct osc_page *ops = pvec[i];
+               struct cl_page *page = ops->ops_cl.cpl_page;
 
-       *(pgoff_t *)cbdata = osc_index(ops) + 1;
+               if (cl_page_is_vmlocked(env, page) ||
+                   PageDirty(page->cp_vmpage) ||
+                   PageWriteback(page->cp_vmpage))
+                       return false;
+
+               *(pgoff_t *)cbdata = osc_index(ops) + 1;
+       }
        return true;
 }