On Thu 18-09-14 16:26:28, Ted Tso wrote: > Through an oversight, when we added nojournal support to ext4, we > didn't add support to allow file system freezing. This is relatively > easy to add, so let's do it. > > Signed-off-by: Theodore Ts'o <tytso@xxxxxxx> > Reported-by: Dexuan Cui <decui@xxxxxxxxxxxxx> Looks good. You can add: Reviewed-by: Jan Kara <jack@xxxxxxx> Honza > --- > fs/ext4/super.c | 27 ++++++++++++++++----------- > 1 file changed, 16 insertions(+), 11 deletions(-) > > diff --git a/fs/ext4/super.c b/fs/ext4/super.c > index 4770c98..921d5b4 100644 > --- a/fs/ext4/super.c > +++ b/fs/ext4/super.c > @@ -1131,6 +1131,8 @@ static const struct super_operations ext4_nojournal_sops = { > .drop_inode = ext4_drop_inode, > .evict_inode = ext4_evict_inode, > .sync_fs = ext4_sync_fs, > + .freeze_fs = ext4_freeze, > + .unfreeze_fs = ext4_unfreeze, > .put_super = ext4_put_super, > .statfs = ext4_statfs, > .remount_fs = ext4_remount, > @@ -4758,23 +4760,26 @@ static int ext4_freeze(struct super_block *sb) > > journal = EXT4_SB(sb)->s_journal; > > - /* Now we set up the journal barrier. */ > - jbd2_journal_lock_updates(journal); > + if (journal) { > + /* Now we set up the journal barrier. */ > + jbd2_journal_lock_updates(journal); > > - /* > - * Don't clear the needs_recovery flag if we failed to flush > - * the journal. > - */ > - error = jbd2_journal_flush(journal); > - if (error < 0) > - goto out; > + /* > + * Don't clear the needs_recovery flag if we failed to > + * flush the journal. > + */ > + error = jbd2_journal_flush(journal); > + if (error < 0) > + goto out; > + } > > /* Journal blocked and flushed, clear needs_recovery flag. */ > EXT4_CLEAR_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_RECOVER); > error = ext4_commit_super(sb, 1); > out: > - /* we rely on upper layer to stop further updates */ > - jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); > + if (journal) > + /* we rely on upper layer to stop further updates */ > + jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); > return error; > } > > -- > 2.1.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html