lockd: fix the endianness bug
[firefly-linux-kernel-4.4.55.git] / 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);