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
This commit is contained in:
parent
269f5806e0
commit
49e6c686f8
2 changed files with 17 additions and 1 deletions
|
@ -9,7 +9,10 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "sha256-QWcnrh8QgOpuMJDOo23QdoJvw2kVHjarc2VXupIZb58=";
|
||||
};
|
||||
|
||||
patches = [ ./no-self-references.patch ];
|
||||
patches = [
|
||||
./no-self-references.patch
|
||||
./fix-hardcoded-mapdir.patch
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"NIXOS=1" "INSTALL=install" "BINDIR=$(out)/sbin"
|
||||
|
|
13
pkgs/os-specific/linux/mdadm/fix-hardcoded-mapdir.patch
Normal file
13
pkgs/os-specific/linux/mdadm/fix-hardcoded-mapdir.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
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)) {
|
Loading…
Reference in a new issue