Whamcloud - gitweb
b=17397
authoralex <alex>
Sat, 1 Nov 2008 08:23:35 +0000 (08:23 +0000)
committeralex <alex>
Sat, 1 Nov 2008 08:23:35 +0000 (08:23 +0000)
i=adilger

 - always flush page left by partial truncate

lustre/obdfilter/filter_io_26.c

index 1fc34bf..66b2372 100644 (file)
@@ -597,8 +597,10 @@ int filter_commitrw_write(struct obd_export *exp, struct obdo *oa,
                 LASSERT(PageLocked(lnb->page));
                 LASSERT(!PageWriteback(lnb->page));
 
-                /* truncate might leave tail dirty */
-                clear_page_dirty_for_io(lnb->page);
+                /* preceding filemap_write_and_wait() should have clean pages */
+                if (fo->fo_writethrough_cache)
+                        clear_page_dirty_for_io(lnb->page);
+                LASSERT(!PageDirty(lnb->page));
 
                 SetPageUptodate(lnb->page);