From: Xiao Ni Date: Wed, 27 Oct 2021 12:23:13 +0000 (+0800) Subject: mdadm/lib: Define a new helper function is_dev_alived X-Git-Tag: mdadm-4.2-rc3~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a35aa68fef246a3eb6bc995cd7af75af420418cc;p=thirdparty%2Fmdadm.git mdadm/lib: Define a new helper function is_dev_alived The function is used to check if one member disk is alive. Signed-off-by: Xiao Ni Acked-by: Mariusz Tkaczyk Signed-off-by: Jes Sorensen --- diff --git a/lib.c b/lib.c index 76d1fbb9..7e3e3d47 100644 --- a/lib.c +++ b/lib.c @@ -27,6 +27,17 @@ #include #include +bool is_dev_alive(char *path) +{ + if (!path) + return false; + + if (access(path, R_OK) == 0) + return true; + + return false; +} + /* This fill contains various 'library' style function. They * have no dependency on anything outside this file. */ diff --git a/mdadm.h b/mdadm.h index 53ea0de6..4e483bfc 100644 --- a/mdadm.h +++ b/mdadm.h @@ -45,6 +45,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence)); #include #include #include +#include /* Newer glibc requires sys/sysmacros.h directly for makedev() */ #include #ifdef __dietlibc__ @@ -1499,6 +1500,7 @@ extern int check_partitions(int fd, char *dname, extern int fstat_is_blkdev(int fd, char *devname, dev_t *rdev); extern int stat_is_blkdev(char *devname, dev_t *rdev); +extern bool is_dev_alive(char *path); extern int get_mdp_major(void); extern int get_maj_min(char *dev, int *major, int *minor); extern int dev_open(char *dev, int flags);