linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] mdadm: POSIX portable naming rules
@ 2023-06-01  7:27 Mariusz Tkaczyk
  2023-06-01  7:27 ` [PATCH 1/6] tests: create names_template Mariusz Tkaczyk
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Mariusz Tkaczyk @ 2023-06-01  7:27 UTC (permalink / raw)
  To: jes; +Cc: linux-raid, colyli

Hi Jes,
To avoid problem with udev and VROC UEFI driver I developed stronger
naming policy, basing on POSIX portable names standard. Verification is
added for names and config entries. In case of an issue, user can update
name to make it compatible (for IMSM and native).

The changes here may cause /dev/md/ link will be different than before
mdadm update. To make any of that happen user need to use unusual naming
convention, like:
- special, non standard signs like, $,%,&,* or space.
- '-' used as first sign.
- locals.

Note: I didn't analyze configurations with "names=1". If name cannot be
determined mdadm should fallback to default numbered dev creation.

If you are planning release soon then feel free to merge it after the
release. It is a potential regression point.

It is a new version of [1] but it is strongly rebuild. Here is a list
of changes:
1. negative and positive test scenarios for both create and config
   entries are added.
2. Save parsed parameters in dedicated structs. It is a way to control
   what is parsed, assuming that we should use dedicated set_* function.
3. Verification for config entries is added.
5. Improved error logging for names:
   - during creation, these messages are errors, printed to stderr.
   - for config entries, messages are just a warnings printed to stdout.
6. Error messages reworked.
7. Updates in manual.

[1] https://lore.kernel.org/linux-raid/20221221115019.26276-1-mariusz.tkaczyk@linux.intel.com/

Mariusz Tkaczyk (6):
  tests: create names_template
  tests: create 00confnames
  mdadm: set ident.devname if applicable
  mdadm: refactor ident->name handling
  mdadm: define ident_set_devname()
  mdadm: Follow POSIX Portable Character Set

 Build.c                        |  21 ++--
 Create.c                       |  35 +++----
 Detail.c                       |  17 ++-
 config.c                       | 184 +++++++++++++++++++++++++++------
 lib.c                          |  76 +++++++++++---
 mdadm.8.in                     |  70 ++++++-------
 mdadm.c                        |  73 +++++--------
 mdadm.conf.5.in                |   4 -
 mdadm.h                        |  36 ++++---
 super-intel.c                  |  47 +++++----
 tests/00confnames              | 107 +++++++++++++++++++
 tests/00createnames            |  89 ++++------------
 tests/templates/names_template |  80 ++++++++++++++
 13 files changed, 551 insertions(+), 288 deletions(-)
 create mode 100644 tests/00confnames
 create mode 100644 tests/templates/names_template

-- 
2.26.2


^ permalink raw reply	[flat|nested] 12+ messages in thread
* Re: [PATCH v2 0/6] mdadm: POSIX portable naming rules
@ 2024-01-01 12:32 Stefan Fleischmann
  2024-01-03  8:53 ` Mariusz Tkaczyk
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Fleischmann @ 2024-01-01 12:32 UTC (permalink / raw)
  To: Mariusz Tkaczyk; +Cc: Jes Sorensen, linux-raid

On 6/1/23 03:27, Mariusz Tkaczyk wrote:
> Hi Jes,
> To avoid problem with udev and VROC UEFI driver I developed stronger
> naming policy, basing on POSIX portable names standard. Verification is
> added for names and config entries. In case of an issue, user can update
> name to make it compatible (for IMSM and native).
> 
> The changes here may cause /dev/md/ link will be different than before
> mdadm update. To make any of that happen user need to use unusual naming
> convention, like:
> - special, non standard signs like, $,%,&,* or space.
> - '-' used as first sign.
> - locals.
> 
> Note: I didn't analyze configurations with "names=1". If name cannot be
> determined mdadm should fallback to default numbered dev creation.
> 
> If you are planning release soon then feel free to merge it after the
> release. It is a potential regression point.
> 
> It is a new version of [1] but it is strongly rebuild. Here is a list
> of changes:
> 1. negative and positive test scenarios for both create and config
>    entries are added.
> 2. Save parsed parameters in dedicated structs. It is a way to control
>    what is parsed, assuming that we should use dedicated set_* function.
> 3. Verification for config entries is added.
> 5. Improved error logging for names:
>    - during creation, these messages are errors, printed to stderr.
>    - for config entries, messages are just a warnings printed to stdout.
> 6. Error messages reworked.
> 7. Updates in manual.
> 
> [1] https://lore.kernel.org/linux-raid/20221221115019.26276-1-mariusz.tkaczyk@linux.intel.com/
> 
> Mariusz Tkaczyk (6):
>   tests: create names_template
>   tests: create 00confnames
>   mdadm: set ident.devname if applicable
>   mdadm: refactor ident->name handling
>   mdadm: define ident_set_devname()
>   mdadm: Follow POSIX Portable Character Set


Hi,

it seems to me that the behavior after this change is inconsistent. The
default naming scheme for a created device is still <HOSTNAME>:<ID>. When
I create a new MD device with:

 # mdadm --version
 mdadm - v4.2 - 2021-12-30 - Debian 4.2+20231121-1
 # mdadm --create /dev/md32 -l 1 -n 2 /dev/loop2 /dev/loop3
 [...]
 # mdadm --detail /dev/md32
  /dev/md32:
           Version : 1.2
     Creation Time : Mon Jan  1 12:33:05 2024
  [...]
              Name : gondolin:32  (local to host gondolin)
              UUID : d84b8e26:3675a722:61869b83:670699da

The name set automatically by mdadm is not allowed by the new naming
rules, and mdadm complains about that later on. So for consistency one
would either have to include : in the allowed character list or change
the default naming scheme. Or am I missing something here?

Happy new year!
Stefan

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-01-03  8:55 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-01  7:27 [PATCH v2 0/6] mdadm: POSIX portable naming rules Mariusz Tkaczyk
2023-06-01  7:27 ` [PATCH 1/6] tests: create names_template Mariusz Tkaczyk
2023-06-01  7:27 ` [PATCH 2/6] tests: create 00confnames Mariusz Tkaczyk
2023-06-01  7:27 ` [PATCH 3/6] mdadm: set ident.devname if applicable Mariusz Tkaczyk
2023-06-01  7:27 ` [PATCH 4/6] mdadm: refactor ident->name handling Mariusz Tkaczyk
2023-06-01  7:27 ` [PATCH 5/6] mdadm: define ident_set_devname() Mariusz Tkaczyk
2023-06-01  7:27 ` [PATCH 6/6] mdadm: Follow POSIX Portable Character Set Mariusz Tkaczyk
2023-06-01  8:57 ` [PATCH v2 0/6] mdadm: POSIX portable naming rules Paul Menzel
2023-06-01  9:52   ` Mariusz Tkaczyk
2023-10-26 21:31 ` Jes Sorensen
2024-01-01 12:32 Stefan Fleischmann
2024-01-03  8:53 ` Mariusz Tkaczyk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).