Whamcloud - gitweb
Use req->page instead of req->addr inside echo_commitrw, as the latter is
authoradilger <adilger>
Thu, 14 Mar 2002 00:16:31 +0000 (00:16 +0000)
committeradilger <adilger>
Thu, 14 Mar 2002 00:16:31 +0000 (00:16 +0000)
unset by the callback function on a write (it worked fine for reads ;-).

lustre/obdecho/echo.c

index 2f1c644..72e9284 100644 (file)
@@ -159,12 +159,12 @@ int echo_commitrw(int cmd, struct obd_conn *conn, int objcount,
                 int j;
 
                 for (j = 0 ; j < obj->ioo_bufcnt ; j++, r++) {
-                        unsigned long addr;
+                        struct page *page = r->page;
+                        unsigned long addr = (unsigned long)page_address(page);
 
-                        addr = r->addr;
                         if (!addr || !kern_addr_valid(addr)) {
-                                CERROR("bad addr %lx, id %Ld (%d), buf %d/%d\n",
-                                       addr, obj->ioo_id, i, j,obj->ioo_bufcnt);
+                                CERROR("bad page %p, id %Ld (%d), buf %d/%d\n",
+                                       page, obj->ioo_id, i, j,obj->ioo_bufcnt);
                                 rc = -EFAULT;
                                 EXIT;
                                 goto commitrw_cleanup;
@@ -182,7 +182,8 @@ commitrw_cleanup:
         CERROR("cleaning up %d pages (%d obdos)\n", niocount - (r - res) - 1,
                objcount);
         while (++r < res + niocount) {
-                unsigned long addr = r->addr;
+                struct page *page = r->page;
+                unsigned long addr = (unsigned long)page_address(page);
 
                 free_pages(addr, 0);
                 echo_pages--;