From: Eric Sandeen <sandeen@redhat.com>
To: ext4 development <linux-ext4@vger.kernel.org>
Subject: [PATCH V2] mke2fs: add discard to default mke2fs.conf and disable by default
Date: Wed, 17 Apr 2013 16:19:19 -0700 [thread overview]
Message-ID: <516F2DF7.2020005@redhat.com> (raw)
In-Reply-To: <516F1C8A.9040702@redhat.com>
Discard is a very big hammer. If it succeeds, there's no undo
or going back; on the other hand, on some devices the giant discard
issued at mkfs time makes them go offline.
Although I'm reluctant to waffle back and forth on default behavior,
I think this disabling it by default the prudent thing to do.
This patch also adds the discard option into the default mke2fs.conf
file; although it could be set, it was not in the template.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
V2: handle discard disable via "-K" since it's parsed *before* we get
the default. The extended options are parsed later, and will override
the mke2fs.conf default without problems.
diff --git a/misc/mke2fs.8.in b/misc/mke2fs.8.in
index 023ba49..a005eca 100644
--- a/misc/mke2fs.8.in
+++ b/misc/mke2fs.8.in
@@ -277,11 +277,11 @@ Attempt to discard blocks at mkfs time (discarding blocks initially is useful
on solid state devices and sparse / thin-provisioned storage). When the device
advertises that discard also zeroes data (any subsequent read after the discard
and before write returns zero), then mark all not-yet-zeroed inode tables as
-zeroed. This significantly speeds up filesystem initialization. This is set
-as default.
+zeroed. This significantly speeds up filesystem initialization. This is disabled
+by default.
.TP
.BI nodiscard
-Do not attempt to discard blocks at mkfs time.
+Do not attempt to discard blocks at mkfs time. This is the default.
.TP
.BI quotatype
Specify which quota type ('usr' or 'grp') is to be initialized. This
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index bbf477a..fa11da6 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -84,7 +84,7 @@ int cflag;
int verbose;
int quiet;
int super_only;
-int discard = 1; /* attempt to discard device before fs creation */
+int discard; /* attempt to discard device before fs creation? */
int direct_io;
int force;
int noaction;
@@ -1266,6 +1266,7 @@ static void PRS(int argc, char *argv[])
double reserved_ratio = -1.0;
int lsector_size = 0, psector_size = 0;
int show_version_only = 0;
+ int nodiscard = 0;
unsigned long long num_inodes = 0; /* unsigned long long to catch too-large input */
errcode_t retval;
char * oldpath = getenv("PATH");
@@ -1444,7 +1445,7 @@ profile_error:
"should not be used anymore. Use "
"\'-E nodiscard\' extended option "
"instead!\n"));
- discard = 0;
+ nodiscard = 1;
break;
case 'j':
if (!journal_size)
@@ -1985,7 +1986,8 @@ profile_error:
lazy_itable_init = get_bool_from_profile(fs_types,
"lazy_itable_init",
lazy_itable_init);
- discard = get_bool_from_profile(fs_types, "discard" , discard);
+ /* nodiscard is set if -K was used, extended discard opts parsed later */
+ discard = nodiscard ? 0 : get_bool_from_profile(fs_types, "discard" , 0);
journal_flags |= get_bool_from_profile(fs_types,
"lazy_journal_init", 0) ?
EXT2_MKJOURNAL_LAZYINIT : 0;
diff --git a/misc/mke2fs.conf.in b/misc/mke2fs.conf.in
index 178733f..db6decb 100644
--- a/misc/mke2fs.conf.in
+++ b/misc/mke2fs.conf.in
@@ -2,6 +2,7 @@
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
default_mntopts = acl,user_xattr
enable_periodic_fsck = 0
+ discard = 0
blocksize = 4096
inode_size = 256
inode_ratio = 16384
next prev parent reply other threads:[~2013-04-17 23:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-17 22:04 [PATCH] mke2fs: add discard to default mke2fs.conf and disable by default Eric Sandeen
2013-04-17 22:33 ` Eric Sandeen
2013-04-17 23:19 ` Eric Sandeen [this message]
2013-04-18 23:09 ` [PATCH V2] " Eric Sandeen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=516F2DF7.2020005@redhat.com \
--to=sandeen@redhat.com \
--cc=linux-ext4@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.