nixpkgs/pkgs/os-specific/linux/mdadm/fix-hardcoded-mapdir.patch
Andrew Marshall 49e6c686f8 mdadm: Fix hardcoded directory
In [upstream change][1], handling of creating `/run/mdadm/creating-%s`
file was changed to fail if it was unable to create the file. This
revealed that the path itself incorrectly hardcodes `/run/mdadm` instead
of using `MAP_DIR` or similar. Since nixpkgs sets `RUN_DIR=/run/.mdadm`
at compile time, and `MAP_DIR=$(RUN_DIR)` in upstream, the `/run/mdadm`
is never created. This remedies by fixing the hard-coded directory.

[1]: https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git/commit/?id=9f376da6439b07dc93ae084ab576e133b9d8d839
2024-04-02 19:26:16 -04:00

14 lines
385 B
Diff

diff --git a/udev.c b/udev.c
index bc4722b0..aa2a1a24 100644
--- a/udev.c
+++ b/udev.c
@@ -167,7 +167,7 @@ enum udev_status udev_block(char *devnm)
int fd;
char *path = xcalloc(1, BUFSIZ);
- snprintf(path, BUFSIZ, "/run/mdadm/creating-%s", devnm);
+ snprintf(path, BUFSIZ, "%s/creating-%s", MAP_DIR, devnm);
fd = open(path, O_CREAT | O_RDWR, 0600);
if (!is_fd_valid(fd)) {