Whamcloud - gitweb
LU-1883 osd: Fix niobuf_local offset usage
[fs/lustre-release.git] / lustre / obdecho / echo.c
index bca3d91..2320dc9 100644 (file)
@@ -306,15 +306,17 @@ static int echo_map_nb_to_lb(struct obdo *oa, struct obd_ioobj *obj,
                 if (*left == 0)
                         return -EINVAL;
 
-                res->offset = offset;
-                res->len = plen;
-                LASSERT((res->offset & ~CFS_PAGE_MASK) + res->len <= CFS_PAGE_SIZE);
-
-
-                if (ispersistent &&
-                    (res->offset >> CFS_PAGE_SHIFT) < ECHO_PERSISTENT_PAGES) {
-                        res->page = echo_persistent_pages[res->offset >>
-                                CFS_PAGE_SHIFT];
+               res->lnb_file_offset = offset;
+               res->len = plen;
+               LASSERT((res->lnb_file_offset & ~CFS_PAGE_MASK) + res->len <=
+                       CFS_PAGE_SIZE);
+
+               if (ispersistent &&
+                   ((res->lnb_file_offset >> CFS_PAGE_SHIFT) <
+                     ECHO_PERSISTENT_PAGES)) {
+                       res->page =
+                               echo_persistent_pages[res->lnb_file_offset >>
+                                                     CFS_PAGE_SHIFT];
                         /* Take extra ref so __free_pages() can be called OK */
                         cfs_get_page (res->page);
                 } else {
@@ -327,14 +329,14 @@ static int echo_map_nb_to_lb(struct obdo *oa, struct obd_ioobj *obj,
                 }
 
                 CDEBUG(D_PAGE, "$$$$ get page %p @ "LPU64" for %d\n",
-                       res->page, res->offset, res->len);
+                      res->page, res->lnb_file_offset, res->len);
 
                 if (cmd & OBD_BRW_READ)
                         res->rc = res->len;
 
                 if (debug_setup)
                         echo_page_debug_setup(res->page, cmd, obj->ioo_id,
-                                              res->offset, res->len);
+                                             res->lnb_file_offset, res->len);
 
                 offset += plen;
                 len -= plen;
@@ -371,11 +373,12 @@ static int echo_finalize_lb(struct obdo *oa, struct obd_ioobj *obj,
                 addr = cfs_kmap(page);
 
                 CDEBUG(D_PAGE, "$$$$ use page %p, addr %p@"LPU64"\n",
-                       res->page, addr, res->offset);
+                      res->page, addr, res->lnb_file_offset);
 
                 if (verify) {
                         int vrc = echo_page_debug_check(page, obj->ioo_id,
-                                                        res->offset, res->len);
+                                                       res->lnb_file_offset,
+                                                       res->len);
                         /* check all the pages always */
                         if (vrc != 0 && rc == 0)
                                 rc = vrc;