Revert "ext4: Fix warnings when freezing filesystem with journaled data"
After making ext4_writepages() properly clean all pages there is no need
for special treatment of filesystem freezing. Revert commit
e6c28a26b7
.
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230329154950.19720-13-jack@suse.cz
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
ab382539ad
commit
d0ab8368c1
@ -2385,7 +2385,6 @@ static int mpage_journal_page_buffers(handle_t *handle,
|
||||
static int mpage_prepare_extent_to_map(struct mpage_da_data *mpd)
|
||||
{
|
||||
struct address_space *mapping = mpd->inode->i_mapping;
|
||||
struct super_block *sb = mpd->inode->i_sb;
|
||||
struct folio_batch fbatch;
|
||||
unsigned int nr_folios;
|
||||
pgoff_t index = mpd->first_page;
|
||||
@ -2405,15 +2404,7 @@ static int mpage_prepare_extent_to_map(struct mpage_da_data *mpd)
|
||||
|
||||
mpd->map.m_len = 0;
|
||||
mpd->next_page = index;
|
||||
/*
|
||||
* Start a transaction for writeback of journalled data. We don't start
|
||||
* the transaction if the filesystem is frozen. In that case we
|
||||
* should not have any dirty data to write anymore but possibly there
|
||||
* are stray page dirty bits left by the checkpointing code so this
|
||||
* loop clears them.
|
||||
*/
|
||||
if (ext4_should_journal_data(mpd->inode) &&
|
||||
sb->s_writers.frozen < SB_FREEZE_FS) {
|
||||
if (ext4_should_journal_data(mpd->inode)) {
|
||||
handle = ext4_journal_start(mpd->inode, EXT4_HT_WRITE_PAGE,
|
||||
bpp);
|
||||
if (IS_ERR(handle))
|
||||
@ -2502,15 +2493,11 @@ static int mpage_prepare_extent_to_map(struct mpage_da_data *mpd)
|
||||
* through a pin.
|
||||
*/
|
||||
if (!mpd->can_map) {
|
||||
WARN_ON_ONCE(sb->s_writers.frozen ==
|
||||
SB_FREEZE_COMPLETE);
|
||||
err = mpage_submit_folio(mpd, folio);
|
||||
if (err < 0)
|
||||
goto out;
|
||||
/* Pending dirtying of journalled data? */
|
||||
if (folio_test_checked(folio)) {
|
||||
WARN_ON_ONCE(sb->s_writers.frozen >=
|
||||
SB_FREEZE_FS);
|
||||
err = mpage_journal_page_buffers(handle,
|
||||
mpd, &folio->page);
|
||||
if (err < 0)
|
||||
|
@ -6293,17 +6293,6 @@ static int ext4_freeze(struct super_block *sb)
|
||||
if (error < 0)
|
||||
goto out;
|
||||
|
||||
/*
|
||||
* Do another sync. We really should not have any dirty data
|
||||
* anymore but our checkpointing code does not clear page dirty
|
||||
* bits due to locking constraints so writeback still can get
|
||||
* started for inodes with journalled data which triggers
|
||||
* annoying warnings.
|
||||
*/
|
||||
error = sync_filesystem(sb);
|
||||
if (error < 0)
|
||||
goto out;
|
||||
|
||||
/* Journal blocked and flushed, clear needs_recovery flag. */
|
||||
ext4_clear_feature_journal_needs_recovery(sb);
|
||||
if (ext4_orphan_file_empty(sb))
|
||||
|
Loading…
Reference in New Issue
Block a user