Description: tune2fs: don't recover journal if device is busy.
 tune2fs currently replays the journal if it needs
 recovery and the filesystem isn't mounted.
 .
 The test for "is the filesystem mounted" isn't completely robust.
 Lustre makes use of ext4 filesystems in a way that they are mounted
 without being visible in /proc/mounts or similar.
 This usage can easily be detected by attempting to open the device
 with O_EXCL.  tune2fs already does this and the EXT2_MF_BUSY flag
 is set if open(O_EXCL) fails.
 Several uses other than lustre mounts could cause O_EXCL to fail,
 but in any case it seems unwise to recover the journal when something
 else is keeping the device busy.
 .
 So add an extra test to avoid journal recovery when the device
 is busy.  This fixes some problems with lustre usage.
From: NeilBrown <neilb@suse.com>
Origin: upstream, commit:ee8b61e9b0ac
---
 misc/tune2fs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 7bbd61088..a3374ab9d 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -3226,7 +3226,7 @@ _("Warning: The journal is dirty. You may wish to replay the journal like:\n\n"
 	}
 #else
 	/* Recover the journal if possible. */
-	if ((open_flag & EXT2_FLAG_RW) && !(mount_flags & EXT2_MF_MOUNTED) &&
+	if ((open_flag & EXT2_FLAG_RW) && !(mount_flags & (EXT2_MF_BUSY | EXT2_MF_MOUNTED)) &&
 	    ext2fs_has_feature_journal_needs_recovery(fs->super)) {
 		errcode_t err;
 
-- 
2.16.1.72.g5be1f00a9a

