projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ext4: fix data integrity sync in ordered mode
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
fs
/
ext4
/
inode.c
diff --git
a/fs/ext4/inode.c
b/fs/ext4/inode.c
index
4e8903d
..
a7029f4
100644
(file)
--- a/
fs/ext4/inode.c
+++ b/
fs/ext4/inode.c
@@
-1835,6
+1835,7
@@
static int ext4_writepage(struct page *page,
struct buffer_head *page_bufs = NULL;
struct inode *inode = page->mapping->host;
struct ext4_io_submit io_submit;
struct buffer_head *page_bufs = NULL;
struct inode *inode = page->mapping->host;
struct ext4_io_submit io_submit;
+ bool keep_towrite = false;
trace_ext4_writepage(page);
size = i_size_read(inode);
trace_ext4_writepage(page);
size = i_size_read(inode);
@@
-1865,6
+1866,7
@@
static int ext4_writepage(struct page *page,
unlock_page(page);
return 0;
}
unlock_page(page);
return 0;
}
+ keep_towrite = true;
}
if (PageChecked(page) && ext4_should_journal_data(inode))
}
if (PageChecked(page) && ext4_should_journal_data(inode))
@@
-1881,7
+1883,7
@@
static int ext4_writepage(struct page *page,
unlock_page(page);
return -ENOMEM;
}
unlock_page(page);
return -ENOMEM;
}
- ret = ext4_bio_write_page(&io_submit, page, len, wbc);
+ ret = ext4_bio_write_page(&io_submit, page, len, wbc
, keep_towrite
);
ext4_io_submit(&io_submit);
/* Drop io_end reference we got from init */
ext4_put_io_end_defer(io_submit.io_end);
ext4_io_submit(&io_submit);
/* Drop io_end reference we got from init */
ext4_put_io_end_defer(io_submit.io_end);
@@
-1900,7
+1902,7
@@
static int mpage_submit_page(struct mpage_da_data *mpd, struct page *page)
else
len = PAGE_CACHE_SIZE;
clear_page_dirty_for_io(page);
else
len = PAGE_CACHE_SIZE;
clear_page_dirty_for_io(page);
- err = ext4_bio_write_page(&mpd->io_submit, page, len, mpd->wbc);
+ err = ext4_bio_write_page(&mpd->io_submit, page, len, mpd->wbc
, false
);
if (!err)
mpd->wbc->nr_to_write--;
mpd->first_page++;
if (!err)
mpd->wbc->nr_to_write--;
mpd->first_page++;