diff options
-rw-r--r-- | config.c | 5 | ||||
-rw-r--r-- | mdadm.conf.5 | 14 | ||||
-rw-r--r-- | mdadm.h | 1 | ||||
-rw-r--r-- | super1.c | 4 |
4 files changed, 22 insertions, 2 deletions
@@ -187,6 +187,7 @@ struct createinfo createinfo = { .autof = 2, /* by default, create devices with standard names */ .symlinks = 1, .names = 0, /* By default, stick with numbered md devices. */ + .bblist = 1, /* Use a bad block list by default */ #ifdef DEBIAN .gid = 6, /* disk */ .mode = 0660, @@ -306,6 +307,10 @@ static void createline(char *line) createinfo.names = 1; else if (strncasecmp(w, "names=no", 11) == 0) createinfo.names = 0; + else if (strncasecmp(w, "bbl=no", 11) == 0) + createinfo.bblist = 0; + else if (strncasecmp(w, "bbl=yes", 11) == 0) + createinfo.bblist = 1; else { pr_err("unrecognised word on CREATE line: %s\n", w); diff --git a/mdadm.conf.5 b/mdadm.conf.5 index 61267b61..18512cb0 100644 --- a/mdadm.conf.5 +++ b/mdadm.conf.5 @@ -293,8 +293,8 @@ line and it should be give only one program. .B CREATE The .B create -line gives default values to be used when creating arrays and device entries for -arrays. +line gives default values to be used when creating arrays, new members +of arrays, and device entries for arrays. These include: .RS 4 @@ -365,6 +365,16 @@ is given, then non-numeric device names will not be used even if the default changes in a future release of .IR mdadm . + +.TP +.B bbl=no +By default, +.I mdadm +will reserve space for a bad block list (bbl) on all devices +included in or added to any array that supports them. Setting +.B bbl=no +will prevent this, so newly added devices will not have a bad +block log. .RE .TP @@ -258,6 +258,7 @@ struct createinfo { int mode; int symlinks; int names; + int bblist; struct supertype *supertype; }; @@ -1688,6 +1688,10 @@ static int write_init_super1(struct supertype *st) rv = -EINVAL; goto out; } + if (conf_get_create_info()->bblist == 0) { + sb->bblog_size = 0; + sb->bblog_offset = 0; + } sb->sb_csum = calc_sb_1_csum(sb); rv = store_super1(st, di->fd); |