[dm-devel] [mdadm PATCH] Create: tell udev md device is not ready when first created.
Jes Sorensen
jes.sorensen at gmail.com
Tue May 2 13:42:49 UTC 2017
On 04/28/2017 01:05 AM, NeilBrown wrote:
>
> When an array is created the content is not initialized,
> so it could have remnants of an old filesystem or md array
> etc on it.
> udev will see this and might try to activate it, which is almost
> certainly not what is wanted.
>
> So create a mechanism for mdadm to communicate with udev to tell
> it that the device isn't ready. This mechanism is the existance
> of a file /run/mdadm/created-mdXXX where mdXXX is the md device name.
>
> When creating an array, mdadm will create the file.
> A new udev rule file, 01-md-raid-creating.rules, will detect the
> precense of thst file and set ENV{SYSTEMD_READY}="0".
> This is fairly uniformly used to suppress actions based on the
> contents of the device.
>
> Signed-off-by: NeilBrown <neilb at suse.com>
> ---
> Assemble.c | 2 +-
> Build.c | 2 +-
> Create.c | 9 +++++++-
> Incremental.c | 4 ++--
> Makefile | 4 ++--
> lib.c | 29 +++++++++++++++++++++++++
> mdadm.h | 4 +++-
> mdopen.c | 52 ++++++++++++++++++++++++++++-----------------
> udev-md-raid-creating.rules | 7 ++++++
> 9 files changed, 86 insertions(+), 27 deletions(-)
> create mode 100644 udev-md-raid-creating.rules
Applied!
I like this solution much better, even though I am not in love with the
giant usleep() call. Would be nice to find a better way around that.
Sorry it took so long to get back to you on this, last week was a mess.
Thanks,
Jes
More information about the dm-devel
mailing list