X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2Fbuffer.c;h=1a80b048ade822849b88fb51003e5244c80872f5;hb=23e8e1aaacb10d9f05e44a93e10ea4ee5b3838a5;hp=698c6b2cc462ab067debcab84f77cffcb785a9cd;hpb=a0c3061093c8b49facef95dc09a618c6e0d17cb5;p=mv-sheeva.git diff --git a/fs/buffer.c b/fs/buffer.c index 698c6b2cc46..1a80b048ade 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -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);