2011-06-07 16:22:32

by Andreas Dilger

[permalink] [raw]
Subject: [PATCH] mke2fs: Don't erase flash device if "-n" is given

If "mke2fs -n" is used, there should be no changes to the underlying
device. Unfortunately, when the "discard" option was added in commit
c7cd908be59f48c66b4f3ac9a631ffe3dde4f1ab, it did not check for the "-n"
flag, and will discard all data on a flash device even if "-n" is given.

Check for the "noaction" flag before discarding any filesystem data.

Signed-off-by: Andreas Dilger <[email protected]>
---
misc/mke2fs.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index ddfa929..9472016 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -2132,7 +2132,7 @@ int main (int argc, char *argv[])
}

/* Can't undo discard ... */
- if (discard && (io_ptr != undo_io_manager)) {
+ if (!noaction && discard && (io_ptr != undo_io_manager)) {
retval = mke2fs_discard_device(fs);
if (!retval && io_channel_discard_zeroes_data(fs->io)) {
if (verbose)
--
1.7.3.4



2011-06-07 16:58:45

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] mke2fs: Don't erase flash device if "-n" is given

On 6/7/11 11:22 AM, Andreas Dilger wrote:
> If "mke2fs -n" is used, there should be no changes to the underlying
> device. Unfortunately, when the "discard" option was added in commit
> c7cd908be59f48c66b4f3ac9a631ffe3dde4f1ab, it did not check for the "-n"
> flag, and will discard all data on a flash device even if "-n" is given.

Oh, crud.

> Check for the "noaction" flag before discarding any filesystem data.
>
> Signed-off-by: Andreas Dilger <[email protected]>

Reviewed-by: Eric Sandeen <[email protected]>

> ---
> misc/mke2fs.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/misc/mke2fs.c b/misc/mke2fs.c
> index ddfa929..9472016 100644
> --- a/misc/mke2fs.c
> +++ b/misc/mke2fs.c
> @@ -2132,7 +2132,7 @@ int main (int argc, char *argv[])
> }
>
> /* Can't undo discard ... */
> - if (discard && (io_ptr != undo_io_manager)) {
> + if (!noaction && discard && (io_ptr != undo_io_manager)) {
> retval = mke2fs_discard_device(fs);
> if (!retval && io_channel_discard_zeroes_data(fs->io)) {
> if (verbose)


2011-06-07 17:37:42

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] mke2fs: Don't erase flash device if "-n" is given

On Tue, Jun 07, 2011 at 11:58:40AM -0500, Eric Sandeen wrote:
> On 6/7/11 11:22 AM, Andreas Dilger wrote:
> > If "mke2fs -n" is used, there should be no changes to the underlying
> > device. Unfortunately, when the "discard" option was added in commit
> > c7cd908be59f48c66b4f3ac9a631ffe3dde4f1ab, it did not check for the "-n"
> > flag, and will discard all data on a flash device even if "-n" is given.
>
> Oh, crud.

I guess that means we should probably release e2fsprogs 1.41.15.

> > Check for the "noaction" flag before discarding any filesystem data.
> >
> > Signed-off-by: Andreas Dilger <[email protected]>
>
> Reviewed-by: Eric Sandeen <[email protected]>

Added to the maint branch, thanks.

- Ted