]> git.hungrycats.org Git - linux/commitdiff
XFS: Avoid writing data out to disk twice!
authorStephen Lord <lord@sgi.com>
Thu, 26 Sep 2002 23:49:09 +0000 (01:49 +0200)
committerChristoph Hellwig <hch@sgi.com>
Thu, 26 Sep 2002 23:49:09 +0000 (01:49 +0200)
Modid: 2.5.x-xfs:slinx:128467a

fs/xfs/linux/xfs_aops.c

index 0757ea479335c31b26794423769a03d4a5fc3922..7eedce692a9ac175bb223099e149bf5cf53bc5ad 100644 (file)
@@ -223,7 +223,7 @@ probe_unmapped_page(
        page = find_get_page(mapping, index);
        if (!page)
                return 0;
-       if (TestSetPageLocked(page)) {
+       if (PageWriteback(page) || TestSetPageLocked(page)) {
                page_cache_release(page);
                return 0;
        }
@@ -302,7 +302,7 @@ probe_page(
        page = find_get_page(inode->i_mapping, index);
        if (!page)
                return NULL;
-       if (TestSetPageLocked(page)) {
+       if (PageWriteback(page) || TestSetPageLocked(page)) {
                page_cache_release(page);
                return NULL;
        }
@@ -331,6 +331,7 @@ submit_page(
 
        BUG_ON(PageWriteback(page));
        SetPageWriteback(page);
+       clear_page_dirty(page);
        unlock_page(page);
 
        if (cnt) {