From patchwork Wed Nov 25 00:07:39 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Dilger X-Patchwork-Id: 548364 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id D382A1402A5 for ; Wed, 25 Nov 2015 11:09:03 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932572AbbKYAHq (ORCPT ); Tue, 24 Nov 2015 19:07:46 -0500 Received: from smtp-out-so.shaw.ca ([64.59.136.137]:46708 "EHLO smtp-out-so.shaw.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755708AbbKYAHn (ORCPT ); Tue, 24 Nov 2015 19:07:43 -0500 Received: from sookie-gig.adilger.int ([96.51.76.157]) by shaw.ca with SMTP id 1NcbaaTwOQQ6M1NccasoRK; Tue, 24 Nov 2015 17:07:42 -0700 X-Authority-Analysis: v=2.1 cv=S555uNYP c=1 sm=1 tr=0 a=sQcIUxX0G8DGr1HsvJ29bQ==:117 a=sQcIUxX0G8DGr1HsvJ29bQ==:17 a=QyXUC8HyAAAA:8 a=8MJEEIUXdF5_77grb6gA:9 From: Andreas Dilger To: tytso@mit.edu Cc: linux-ext4@vger.kernel.org, Jim Garlick , Andreas Dilger Subject: [PATCH v2] tune2fs: warn if the filesystem journal is dirty Date: Tue, 24 Nov 2015 17:07:39 -0700 Message-Id: <1448410059-3691-1-git-send-email-adilger@dilger.ca> X-Mailer: git-send-email 1.7.3.4 X-CMAE-Envelope: MS4wfFilV1ur2qR+B0K9tsGeunLvuSiM5IJIRJ1rGGHP6Li9V3x1sLuPoh/dba2u4wu57WGbsyYCtkofy+E6p6GvyWJfMRvXtAecECz3QPkOl/P9v+/6C3Jm VZJeUZ2rTcdk6dLRE5V59gaQpQYwI0AYa/Da2qA2mnAEiCFqxLIsyF8Gg5dx4LhOvjbkNvQhFuEwi8YrChQ5yGdA7obsp9tvcLk7dtUnIe75eDZW0LNy6THw xtQOEbv82b4cmul+MH44LdC+zeZ3P8I/9HV6bvbByqQ= Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org From: Jim Garlick Running tune2fs on a filesystem with an unrecovered journal can cause the tune2fs settings changes in the superblock to be reverted when the journal is replayed if it contains an uncommitted copy of the superblock. Print a warning if this is detected so that the user isn't surprised if it happens. Signed-off-by: Jim Garlick Updated message printed to include steps to replay journal. Signed-off-by: Andreas Dilger --- misc/tune2fs.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/misc/tune2fs.c b/misc/tune2fs.c index cd1d17f..aed0a35 100644 --- a/misc/tune2fs.c +++ b/misc/tune2fs.c @@ -2406,6 +2406,18 @@ retry_open: ext_mount_opts); free(ext_mount_opts); } + + /* Warn if file system needs recovery and it is opened for writing. */ + if ((open_flag & EXT2_FLAG_RW) && !(mount_flags & EXT2_MF_MOUNTED) && + (sb->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) && + (sb->s_feature_incompat & EXT3_FEATURE_INCOMPAT_RECOVER)) { + fprintf(stderr, +_("Warning: The journal is dirty. You may wish to replay the journal like:\n\n" + "\te2fsck -E journal_only %s\n\n" + "then rerun this command. Otherwise, any changes made may be overwritten\n" + "by journal recovery.\n"), device_name); + } + free(device_name); remove_error_table(&et_ext2_error_table);