Whamcloud - gitweb
libext2fs: fix ext2fs_close() when MMP is not enabled
authorTheodore Ts'o <tytso@mit.edu>
Tue, 26 May 2015 02:18:43 +0000 (22:18 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 26 May 2015 02:18:43 +0000 (22:18 -0400)
If MMP support is not configured, then ext2fs_mmp_stop() will always
return the error EXT2_ET_OP_NOT_SUPPORTED.  Unfortunately,
ext2fs_close() and tune2fs call ext2fs_mmp_stop() unconditionally.  So
if the file system does not have MMP enabled, fix ext2fs_mmp_stop() to
return success even if CONFIG_MMP is not enabled, so that
ext2fs_close() and tune2fs doesn't fail for no good reason.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/ext2fs/mmp.c

index afb825c..3947b1f 100644 (file)
@@ -398,6 +398,10 @@ mmp_error:
 
        return retval;
 #else
+       if (!(fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_MMP) ||
+           !(fs->flags & EXT2_FLAG_RW) || (fs->flags & EXT2_FLAG_SKIP_MMP))
+               return 0;
+
        return EXT2_ET_OP_NOT_SUPPORTED;
 #endif
 }
@@ -440,6 +444,10 @@ errcode_t ext2fs_mmp_update2(ext2_filsys fs, int immediately)
 mmp_error:
        return retval;
 #else
+       if (!(fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_MMP) ||
+           !(fs->flags & EXT2_FLAG_RW) || (fs->flags & EXT2_FLAG_SKIP_MMP))
+               return 0;
+
        return EXT2_ET_OP_NOT_SUPPORTED;
 #endif
 }