From 058574b1da29e875104043fe6ea5ff5cfb81ebd0 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Fri, 2 Jun 2006 05:33:40 +0000 Subject: [PATCH] Allow default metadata to be specified in mdadm.conf CREATE metadata=1 in mdadm.conf will cause version-1 superblocks to be the default. Signed-off-by: Neil Brown --- Create.c | 5 +++++ config.c | 10 ++++++++++ mdadm.conf.5 | 25 ++++++++++++++++++++++++- mdadm.h | 1 + 4 files changed, 40 insertions(+), 1 deletion(-) diff --git a/Create.c b/Create.c index b07e044..8149d27 100644 --- a/Create.c +++ b/Create.c @@ -214,6 +214,11 @@ int Create(struct supertype *st, char *mddev, int mdfd, ldsize = dsize; ldsize <<= 9; } + if (st == NULL) { + struct createinfo *ci = conf_get_create_info(NULL); + if (ci) + st = ci->supertype; + } if (st == NULL) { /* Need to choose a default metadata, which is different * depending on the sizes of devices diff --git a/config.c b/config.c index 5accf15..20dc725 100644 --- a/config.c +++ b/config.c @@ -354,6 +354,16 @@ static void createline(char *line) fprintf(stderr, Name ": unrecognised CREATE mode %s\n", w+5); } + } else if (strncasecmp(w, "metadata=", 9) == 0) { + /* style of metadata to use by default */ + int i; + for (i=0; superlist[i] && !createinfo.supertype; i++) + createinfo.supertype = + superlist[i]->match_metadata_desc(w+9); + if (!createinfo.supertype) + fprintf(stderr, Name ": metadata format %s unknown, ignoring\n", + w+9); + } else { fprintf(stderr, Name ": unrecognised word on CREATE line: %s\n", w); diff --git a/mdadm.conf.5 b/mdadm.conf.5 index b9beffa..6ae6802 100644 --- a/mdadm.conf.5 +++ b/mdadm.conf.5 @@ -126,6 +126,17 @@ this is mainly for compatibility with the output of .BR "mdadm --examine --scan" . +.TP +.B spares= +The value is a number of spare devices to expect the array to have. +.I mdadm --monitor +will report an array if it is found to have fewer than this number of +spares when +.B --monitor +starts or when +.B --oneshot +is used. + .TP .B spare-group= The value is a textual name for a group of arrays. All arrays with @@ -165,6 +176,13 @@ driver as the bitmap file. This has the same function as the .B --bitmap-file option to .BR --assemble . + +.TP +.B metadata= +Specify the metadata format that the array has. This is mainly +recognised for comparability with the output of +.IR "mdadm -Es" . + .RE .TP @@ -217,7 +235,7 @@ line and it should be give only one program. .B CREATE The .B create -line gives default values to be used when creating device entries for +line gives default values to be used when creating arrays and device entries for arrays. These include: @@ -244,6 +262,11 @@ flag to mdadm. Give - possibly followed by a number of partitions - to indicate how missing device entries should be created. +.TP +.B metadata= +The name of the metadata format to use if none is explicitly given. +This can be useful to impose a system-wide default of version-1 superblocks. + .RE diff --git a/mdadm.h b/mdadm.h index b7ae967..445af32 100644 --- a/mdadm.h +++ b/mdadm.h @@ -116,6 +116,7 @@ struct createinfo { int gid; int autof; int mode; + struct supertype *supertype; }; #define Name "mdadm"