Whamcloud - gitweb
- The first unfinished bits of the DLM regression test. Move along, nothing to
[fs/lustre-release.git] / lustre / obdfilter / filter.c
index 49e46b0..2bb1be8 100644 (file)
@@ -713,6 +713,7 @@ static int filter_truncate(struct obd_conn *conn, struct obdo *oa,
 
         CDEBUG(D_INODE, "calling truncate for object #%Ld, valid = %x, "
                "o_size = %Ld\n", oa->o_id, oa->o_valid, oa->o_size);
+        oa->o_valid = OBD_MD_FLSIZE;
         error = filter_setattr(conn, oa);
         oa->o_valid = OBD_MD_FLBLOCKS | OBD_MD_FLCTIME | OBD_MD_FLMTIME;
 
@@ -1096,6 +1097,7 @@ struct page *filter_get_page_write(struct inode *inode, unsigned long index,
                  * a no-op for most filesystems, because we write the whole
                  * page.  For partial-page I/O this will read in the page.
                  */
+                kmap(page);
                 rc = mapping->a_ops->prepare_write(NULL, page, 0, PAGE_SIZE);
                 if (rc) {
                         CERROR("page index %lu, rc = %d\n", index, rc);
@@ -1109,8 +1111,6 @@ struct page *filter_get_page_write(struct inode *inode, unsigned long index,
                         LBUG();
                         GOTO(err_unlock, rc = -EIO);
                 }
-
-                kmap(page);
         }
         return page;