diff options
author | Daniel Morante <daniel@morante.net> | 2020-08-09 21:58:37 -0400 |
---|---|---|
committer | Amar Tumballi <amar@kadalu.io> | 2020-08-20 09:30:17 +0000 |
commit | dc515feae51e247270bb440e40b8346eb3af7b46 (patch) | |
tree | 47a040ede1dda6563bfcf0ab5095fd5b4acee427 /libglusterfs | |
parent | 097db13c11390174c5b9f11aa0fd87eca1735871 (diff) |
Remove need for /proc on FreeBSD
Change-Id: Ieebd9a54307813954011ac8833824831dce6da10
Fixes: #1376
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/common-utils.c | 9 | ||||
-rw-r--r-- | libglusterfs/src/glusterfs/syscall.h | 9 | ||||
-rw-r--r-- | libglusterfs/src/libglusterfs.sym | 4 | ||||
-rw-r--r-- | libglusterfs/src/syscall.c | 20 |
4 files changed, 41 insertions, 1 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 38f09b1c696..4186b2e7e9a 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -4133,6 +4133,14 @@ gf_skip_header_section(int fd, int header_len) gf_boolean_t gf_is_pid_running(int pid) { +#ifdef __FreeBSD__ + int ret = -1; + + ret = sys_kill(pid, 0); + if (ret < 0) { + return _gf_false; + } +#else char fname[32] = { 0, }; @@ -4146,6 +4154,7 @@ gf_is_pid_running(int pid) } sys_close(fd); +#endif return _gf_true; } diff --git a/libglusterfs/src/glusterfs/syscall.h b/libglusterfs/src/glusterfs/syscall.h index 91e921aea50..b6d3ab4f2ad 100644 --- a/libglusterfs/src/glusterfs/syscall.h +++ b/libglusterfs/src/glusterfs/syscall.h @@ -266,4 +266,13 @@ ssize_t sys_copy_file_range(int fd_in, off64_t *off_in, int fd_out, off64_t *off_out, size_t len, unsigned int flags); +int +sys_kill(pid_t pid, int sig); + +#ifdef __FreeBSD__ +int +sys_sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, + const void *newp, size_t newlen); +#endif + #endif /* __SYSCALL_H__ */ diff --git a/libglusterfs/src/libglusterfs.sym b/libglusterfs/src/libglusterfs.sym index 00a6e484df6..b869802d7dd 100644 --- a/libglusterfs/src/libglusterfs.sym +++ b/libglusterfs/src/libglusterfs.sym @@ -1080,6 +1080,8 @@ sys_write sys_writev sys_socket sys_accept +sys_kill +sys_sysctl tbf_init tbf_throttle timespec_now @@ -1182,4 +1184,4 @@ xlator_is_cleanup_starting gf_nanosleep gf_syncfs graph_total_client_xlator -get_xattrs_to_heal
\ No newline at end of file +get_xattrs_to_heal diff --git a/libglusterfs/src/syscall.c b/libglusterfs/src/syscall.c index 03e5924a1c3..04400f98b6c 100644 --- a/libglusterfs/src/syscall.c +++ b/libglusterfs/src/syscall.c @@ -13,6 +13,10 @@ #include "glusterfs/mem-pool.h" #include "glusterfs/libglusterfs-messages.h" +#ifdef __FreeBSD__ +#include <sys/sysctl.h> +#include <signal.h> +#endif #include <sys/types.h> #include <utime.h> #include <sys/time.h> @@ -854,3 +858,19 @@ sys_copy_file_range(int fd_in, off64_t *off_in, int fd_out, off64_t *off_out, #endif /* HAVE_COPY_FILE_RANGE_SYS */ #endif /* HAVE_COPY_FILE_RANGE */ } + +#ifdef __FreeBSD__ +int +sys_kill(pid_t pid, int sig) +{ + return FS_RET_CHECK0(kill(pid, sig), errno); +} + +int +sys_sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, + const void *newp, size_t newlen) +{ + return FS_RET_CHECK0(sysctl(name, namelen, oldp, oldlenp, newp, newlen), + errno); +} +#endif |