Merging upstream version 4.2+20231121.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
ae2c938e82
commit
5ba18aa35e
9 changed files with 307 additions and 150 deletions
42
lib.c
42
lib.c
|
@ -204,35 +204,6 @@ char *fd2devnm(int fd)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* When we create a new array, we don't want the content to
|
||||
* be immediately examined by udev - it is probably meaningless.
|
||||
* So create /run/mdadm/creating-mdXXX and expect that a udev
|
||||
* rule will noticed this and act accordingly.
|
||||
*/
|
||||
static char block_path[] = "/run/mdadm/creating-%s";
|
||||
static char *unblock_path = NULL;
|
||||
void udev_block(char *devnm)
|
||||
{
|
||||
int fd;
|
||||
char *path = NULL;
|
||||
|
||||
xasprintf(&path, block_path, devnm);
|
||||
fd = open(path, O_CREAT|O_RDWR, 0600);
|
||||
if (fd >= 0) {
|
||||
close(fd);
|
||||
unblock_path = path;
|
||||
} else
|
||||
free(path);
|
||||
}
|
||||
|
||||
void udev_unblock(void)
|
||||
{
|
||||
if (unblock_path)
|
||||
unlink(unblock_path);
|
||||
free(unblock_path);
|
||||
unblock_path = NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* convert a major/minor pair for a block device into a name in /dev, if possible.
|
||||
* On the first call, walk /dev collecting name.
|
||||
|
@ -539,19 +510,6 @@ int check_env(char *name)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int use_udev(void)
|
||||
{
|
||||
static int use = -1;
|
||||
struct stat stb;
|
||||
|
||||
if (use < 0) {
|
||||
use = ((stat("/dev/.udev", &stb) == 0 ||
|
||||
stat("/run/udev", &stb) == 0) &&
|
||||
check_env("MDADM_NO_UDEV") == 0);
|
||||
}
|
||||
return use;
|
||||
}
|
||||
|
||||
unsigned long GCD(unsigned long a, unsigned long b)
|
||||
{
|
||||
while (a != b) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue