{
        struct ext4_sb_info *sbi = EXT4_SB(sb);
        struct ext4_super_block *es = sbi->s_es;
-       int def_errors, def_mount_opt = nodefs ? 0 : sbi->s_def_mount_opt;
+       int def_errors, def_mount_opt = sbi->s_def_mount_opt;
        const struct mount_opts *m;
        char sep = nodefs ? '\n' : ',';
 
                if (((m->flags & (MOPT_SET|MOPT_CLEAR)) == 0) ||
                    (m->flags & MOPT_CLEAR_ERR))
                        continue;
-               if (!(m->mount_opt & (sbi->s_mount_opt ^ def_mount_opt)))
+               if (!nodefs && !(m->mount_opt & (sbi->s_mount_opt ^ def_mount_opt)))
                        continue; /* skip if same as the default */
                if ((want_set &&
                     (sbi->s_mount_opt & m->mount_opt) != m->mount_opt) ||
                SEQ_OPTS_PUTS("i_version");
        if (nodefs || sbi->s_stripe)
                SEQ_OPTS_PRINT("stripe=%lu", sbi->s_stripe);
-       if (EXT4_MOUNT_DATA_FLAGS & (sbi->s_mount_opt ^ def_mount_opt)) {
+       if (nodefs || EXT4_MOUNT_DATA_FLAGS &
+                       (sbi->s_mount_opt ^ def_mount_opt)) {
                if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
                        SEQ_OPTS_PUTS("data=journal");
                else if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)