]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blobdiff - fs/ext4/page-io.c
ext4: fix data integrity sync in ordered mode
[mirror_ubuntu-eoan-kernel.git] / fs / ext4 / page-io.c
index c18d95b5054081c75e0c7a2fab975976838f9b02..4cb2743cb2e3a47c28696f68002614dbbc0aceef 100644 (file)
@@ -401,7 +401,8 @@ submit_and_retry:
 int ext4_bio_write_page(struct ext4_io_submit *io,
                        struct page *page,
                        int len,
-                       struct writeback_control *wbc)
+                       struct writeback_control *wbc,
+                       bool keep_towrite)
 {
        struct inode *inode = page->mapping->host;
        unsigned block_start, blocksize;
@@ -414,7 +415,10 @@ int ext4_bio_write_page(struct ext4_io_submit *io,
        BUG_ON(!PageLocked(page));
        BUG_ON(PageWriteback(page));
 
-       set_page_writeback(page);
+       if (keep_towrite)
+               set_page_writeback_keepwrite(page);
+       else
+               set_page_writeback(page);
        ClearPageError(page);
 
        /*