]> Pileus Git - ~andy/linux/blobdiff - fs/buffer.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
[~andy/linux] / fs / buffer.c
index 698c6b2cc462ab067debcab84f77cffcb785a9cd..1a80b048ade822849b88fb51003e5244c80872f5 100644 (file)
@@ -1902,10 +1902,8 @@ int __block_write_begin(struct page *page, loff_t pos, unsigned len,
                if (!buffer_uptodate(*wait_bh))
                        err = -EIO;
        }
-       if (unlikely(err)) {
+       if (unlikely(err))
                page_zero_new_buffers(page, from, to);
-               ClearPageUptodate(page);
-       }
        return err;
 }
 EXPORT_SYMBOL(__block_write_begin);
@@ -2382,6 +2380,7 @@ int __block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
                ret = -EAGAIN;
                goto out_unlock;
        }
+       wait_on_page_writeback(page);
        return 0;
 out_unlock:
        unlock_page(page);