]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
mdadm/lib: Define a new helper function is_dev_alived
authorXiao Ni <xni@redhat.com>
Wed, 27 Oct 2021 12:23:13 +0000 (20:23 +0800)
committerJes Sorensen <jsorensen@fb.com>
Tue, 2 Nov 2021 16:09:17 +0000 (12:09 -0400)
The function is used to check if one member disk is alive.

Signed-off-by: Xiao Ni <xni@redhat.com>
Acked-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
lib.c
mdadm.h

diff --git a/lib.c b/lib.c
index 76d1fbb942c71d8d4193d567d753cfa3c34a4ceb..7e3e3d473995e2397c4b06bd3268ad38503142fa 100644 (file)
--- a/lib.c
+++ b/lib.c
 #include       <ctype.h>
 #include       <limits.h>
 
+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 53ea0de66afe60f6b685f55a8f75153f31acca77..4e483bfc14c6922e748980dc6d9191eeb97bc6e5 100644 (file)
--- a/mdadm.h
+++ b/mdadm.h
@@ -45,6 +45,7 @@ extern __off64_t lseek64 __P ((int __fd, __off64_t __offset, int __whence));
 #include       <errno.h>
 #include       <string.h>
 #include       <syslog.h>
+#include       <stdbool.h>
 /* Newer glibc requires sys/sysmacros.h directly for makedev() */
 #include       <sys/sysmacros.h>
 #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);