Whamcloud - gitweb
LU-11290 osc: Batch gang_lookup cbs
[fs/lustre-release.git] / lustre / osc / osc_io.c
index a7c2237..0038286 100644 (file)
@@ -496,22 +496,27 @@ static int osc_async_upcall(void *a, int rc)
  * Checks that there are no pages being written in the extent being truncated.
  */
 static bool trunc_check_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;
-       struct osc_async_page *oap;
-       __u64 start = *(__u64 *)cbdata;
-
-       oap = &ops->ops_oap;
-       if (oap->oap_cmd & OBD_BRW_WRITE &&
-           !list_empty(&oap->oap_pending_item))
-               CL_PAGE_DEBUG(D_ERROR, env, page, "exists %llu/%s.\n",
-                               start, current->comm);
-
-       if (PageLocked(page->cp_vmpage))
-               CDEBUG(D_CACHE, "page %p index %lu locked for %d.\n",
-                      ops, osc_index(ops), oap->oap_cmd & OBD_BRW_RWMASK);
+       int i;
 
+       for (i = 0; i < count; i++) {
+               struct osc_page *ops = pvec[i];
+               struct cl_page *page = ops->ops_cl.cpl_page;
+               struct osc_async_page *oap;
+               __u64 start = *(__u64 *)cbdata;
+
+               oap = &ops->ops_oap;
+               if (oap->oap_cmd & OBD_BRW_WRITE &&
+                               !list_empty(&oap->oap_pending_item))
+                       CL_PAGE_DEBUG(D_ERROR, env, page, "exists %llu/%s.\n",
+                                       start, current->comm);
+
+               if (PageLocked(page->cp_vmpage))
+                       CDEBUG(D_CACHE, "page %p index %lu locked for %d.\n",
+                              ops, osc_index(ops),
+                              oap->oap_cmd & OBD_BRW_RWMASK);
+       }
        return true;
 }