Patchwork [4/5,v2] e2fsck: do not attempt to discard if -n was specified

login
register
mail settings
Submitter Lukas Czerner
Date Aug. 12, 2011, 4:42 p.m.
Message ID <1313167380-3283-4-git-send-email-lczerner@redhat.com>
Download mbox | patch
Permalink /patch/109875/
State Accepted
Headers show

Comments

Lukas Czerner - Aug. 12, 2011, 4:42 p.m.
If '-n' option is specified there should be no changes made to the file
system hence we should not attempt to discard the file system. This
commit adds a check into the e2fsck_discard_blocks() condition so it skip
discard if E2F_OPT_NO flag is set.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
---
v2: This is the actually the first version of the patch

 e2fsck/pass5.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
Theodore Ts'o - Sept. 16, 2011, 3:53 a.m.
On Fri, Aug 12, 2011 at 06:42:59PM +0200, Lukas Czerner wrote:
> If '-n' option is specified there should be no changes made to the file
> system hence we should not attempt to discard the file system. This
> commit adds a check into the e2fsck_discard_blocks() condition so it skip
> discard if E2F_OPT_NO flag is set.
> 
> Signed-off-by: Lukas Czerner <lczerner@redhat.com>

Thanks, applied to the next branch.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/e2fsck/pass5.c b/e2fsck/pass5.c
index f9d746c..cf37556 100644
--- a/e2fsck/pass5.c
+++ b/e2fsck/pass5.c
@@ -87,7 +87,8 @@  static void e2fsck_discard_blocks(e2fsck_t ctx, io_manager manager,
 	if (ext2fs_test_changed(ctx->fs))
 		ctx->options &= ~E2F_OPT_DISCARD;
 
-	if ((ctx->options & E2F_OPT_DISCARD) &&
+	if (!(ctx->options & E2F_OPT_NO) &&
+	    (ctx->options & E2F_OPT_DISCARD) &&
 	    (io_channel_discard(fs->io, start, count)))
 		ctx->options &= ~E2F_OPT_DISCARD;
 }
@@ -331,11 +332,9 @@  redo_counts:
 			if (first_free > i)
 				first_free = i;
 		} else {
-			if ((i > first_free) &&
-			   (ctx->options & E2F_OPT_DISCARD)) {
+			if (i > first_free)
 				e2fsck_discard_blocks(ctx, manager, first_free,
 						      (i - first_free));
-			}
 			first_free = ext2fs_blocks_count(fs->super);
 		}
 		blocks ++;