Commit ec164d07 authored by Sebastian Parschauer's avatar Sebastian Parschauer Committed by Song Liu

md: register new md sysfs file 'uuid' read-only

Report the UUID of the MD array in the following format:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

This is useful if you don't want to wait for udev to identify array.
And it is also easy for script to monitor it with the format.
Signed-off-by: default avatarSebastian Parschauer <s.parschauer@gmx.de>
[Guoqing: mention the change in md.rst]
Signed-off-by: default avatarGuoqing Jiang <guoqing.jiang@cloud.ionos.com>
Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
parent d9c0fa50
...@@ -426,6 +426,10 @@ All md devices contain: ...@@ -426,6 +426,10 @@ All md devices contain:
The accepted values when writing to this file are ``ppl`` and ``resync``, The accepted values when writing to this file are ``ppl`` and ``resync``,
used to enable and disable PPL. used to enable and disable PPL.
uuid
This indicates the UUID of the array in the following format:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
As component devices are added to an md array, they appear in the ``md`` As component devices are added to an md array, they appear in the ``md``
directory as new directories named:: directory as new directories named::
......
...@@ -4252,6 +4252,14 @@ raid_disks_store(struct mddev *mddev, const char *buf, size_t len) ...@@ -4252,6 +4252,14 @@ raid_disks_store(struct mddev *mddev, const char *buf, size_t len)
static struct md_sysfs_entry md_raid_disks = static struct md_sysfs_entry md_raid_disks =
__ATTR(raid_disks, S_IRUGO|S_IWUSR, raid_disks_show, raid_disks_store); __ATTR(raid_disks, S_IRUGO|S_IWUSR, raid_disks_show, raid_disks_store);
static ssize_t
uuid_show(struct mddev *mddev, char *page)
{
return sprintf(page, "%pU\n", mddev->uuid);
}
static struct md_sysfs_entry md_uuid =
__ATTR(uuid, S_IRUGO, uuid_show, NULL);
static ssize_t static ssize_t
chunk_size_show(struct mddev *mddev, char *page) chunk_size_show(struct mddev *mddev, char *page)
{ {
...@@ -5508,6 +5516,7 @@ static struct attribute *md_default_attrs[] = { ...@@ -5508,6 +5516,7 @@ static struct attribute *md_default_attrs[] = {
&md_level.attr, &md_level.attr,
&md_layout.attr, &md_layout.attr,
&md_raid_disks.attr, &md_raid_disks.attr,
&md_uuid.attr,
&md_chunk_size.attr, &md_chunk_size.attr,
&md_size.attr, &md_size.attr,
&md_resync_start.attr, &md_resync_start.attr,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment