diff options
author | Kaleb S. KEITHLEY <kkeithle@redhat.com> | 2015-10-01 16:28:58 -0400 |
---|---|---|
committer | Jeff Darcy <jdarcy@redhat.com> | 2015-11-16 06:18:10 -0800 |
commit | 2099cc875a4d20ab1bb12b1c33da16c95968e202 (patch) | |
tree | 78b611ee025511a06f28e8d5e63453f1dc5d8f1d /libglusterfs | |
parent | 3f0c70f2d56743707699f6a5b62a1c2c2d5c6f85 (diff) |
core: use syscall wrappers instead of direct syscalls - libglusterfs
various xlators and other components are invoking system calls
directly instead of using the libglusterfs/syscall.[ch] wrappers.
If not using the system call wrappers there should be a comment
in the source explaining why the wrapper isn't used.
Change-Id: Ieeca2d36adbc884e4cfa0026dba40df70310d40b
BUG: 1267967
Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
Reviewed-on: http://review.gluster.org/12275
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Jeff Darcy <jdarcy@redhat.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/common-utils.c | 44 | ||||
-rw-r--r-- | libglusterfs/src/compat.c | 3 | ||||
-rw-r--r-- | libglusterfs/src/event-epoll.c | 5 | ||||
-rw-r--r-- | libglusterfs/src/event-poll.c | 21 | ||||
-rw-r--r-- | libglusterfs/src/event.c | 9 | ||||
-rw-r--r-- | libglusterfs/src/graph.c | 5 | ||||
-rw-r--r-- | libglusterfs/src/logging.c | 14 | ||||
-rw-r--r-- | libglusterfs/src/run.c | 35 | ||||
-rw-r--r-- | libglusterfs/src/statedump.c | 15 | ||||
-rw-r--r-- | libglusterfs/src/store.c | 33 |
10 files changed, 98 insertions, 86 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index a89e120c0fb..5852ae29c8a 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -90,7 +90,7 @@ mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks) continue; dir[i] = '\0'; - ret = mkdir (dir, mode); + ret = sys_mkdir (dir, mode); if (ret && errno != EEXIST) { gf_msg ("", GF_LOG_ERROR, errno, LG_MSG_DIR_OP_FAILED, "Failed due to reason"); @@ -98,7 +98,7 @@ mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks) } if (ret && errno == EEXIST && !allow_symlinks) { - ret = lstat (dir, &stbuf); + ret = sys_lstat (dir, &stbuf); if (ret) goto out; @@ -114,7 +114,7 @@ mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks) } while (path[i++] != '\0'); - ret = stat (dir, &stbuf); + ret = sys_stat (dir, &stbuf); if (ret || !S_ISDIR (stbuf.st_mode)) { if (ret == 0) errno = 0; @@ -1898,16 +1898,16 @@ get_checksum_for_file (int fd, uint32_t *checksum) char buf[GF_CHECKSUM_BUF_SIZE] = {0,}; /* goto first place */ - lseek (fd, 0L, SEEK_SET); + sys_lseek (fd, 0L, SEEK_SET); do { - ret = read (fd, &buf, GF_CHECKSUM_BUF_SIZE); + ret = sys_read (fd, &buf, GF_CHECKSUM_BUF_SIZE); if (ret > 0) compute_checksum (buf, GF_CHECKSUM_BUF_SIZE, checksum); } while (ret > 0); /* set it back */ - lseek (fd, 0L, SEEK_SET); + sys_lseek (fd, 0L, SEEK_SET); return ret; } @@ -1934,7 +1934,7 @@ get_checksum_for_path (char *path, uint32_t *checksum) out: if (fd != -1) - close (fd); + sys_close (fd); return ret; } @@ -1957,7 +1957,7 @@ get_file_mtime (const char *path, time_t *stamp) GF_VALIDATE_OR_GOTO (THIS->name, path, out); GF_VALIDATE_OR_GOTO (THIS->name, stamp, out); - ret = stat (path, &f_stat); + ret = sys_stat (path, &f_stat); if (ret < 0) { gf_msg (THIS->name, GF_LOG_ERROR, errno, LG_MSG_FILE_STAT_FAILED, "failed to stat %s", @@ -2902,7 +2902,7 @@ gf_get_reserved_ports () goto out; } - ret = read (proc_fd, buffer, sizeof (buffer)); + ret = sys_read (proc_fd, buffer, sizeof (buffer)); if (ret < 0) { gf_msg ("glusterfs", GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, "could not read the file %s for" @@ -2913,7 +2913,7 @@ gf_get_reserved_ports () out: if (proc_fd != -1) - close (proc_fd); + sys_close (proc_fd); #endif /* GF_LINUX_HOST_OS */ return ports_info; } @@ -3477,7 +3477,7 @@ gf_skip_header_section (int fd, int header_len) { int ret = -1; - ret = lseek (fd, header_len, SEEK_SET); + ret = sys_lseek (fd, header_len, SEEK_SET); if (ret == (off_t) -1) { gf_msg ("", GF_LOG_ERROR, 0, LG_MSG_SKIP_HEADER_FAILED, "Failed to skip header section"); @@ -3637,7 +3637,7 @@ gf_set_timestamp (const char *src, const char* dest) GF_ASSERT (src); GF_ASSERT (dest); - ret = stat (src, &sb); + ret = sys_stat (src, &sb); if (ret) { gf_msg (this->name, GF_LOG_ERROR, errno, LG_MSG_FILE_STAT_FAILED, "stat on %s", src); @@ -3653,7 +3653,7 @@ gf_set_timestamp (const char *src, const char* dest) * requiremnt. Hence using 'utimes'. This can be updated * to 'utimensat' if we need timestamp in nanoseconds. */ - ret = utimes (dest, new_time); + ret = sys_utimes (dest, new_time); if (ret) { gf_msg (this->name, GF_LOG_ERROR, errno, LG_MSG_UTIMES_FAILED, "utimes on %s", dest); @@ -3719,7 +3719,7 @@ gf_backtrace_fillframes (char *buf) fp = fdopen (fd, "r"); if (!fp) { - close (fd); + sys_close (fd); ret = -1; goto out; } @@ -3744,7 +3744,7 @@ out: if (fp) fclose (fp); - unlink (tmpl); + sys_unlink (tmpl); return (idx > 0)? 0: -1; @@ -3968,7 +3968,7 @@ recursive_rmdir (const char *delete_path) GF_ASSERT (this); GF_VALIDATE_OR_GOTO (this->name, delete_path, out); - dir = opendir (delete_path); + dir = sys_opendir (delete_path); if (!dir) { gf_msg_debug (this->name, 0, "Failed to open directory %s. " "Reason : %s", delete_path, strerror (errno)); @@ -3979,7 +3979,7 @@ recursive_rmdir (const char *delete_path) GF_FOR_EACH_ENTRY_IN_DIR (entry, dir); while (entry) { snprintf (path, PATH_MAX, "%s/%s", delete_path, entry->d_name); - ret = lstat (path, &st); + ret = sys_lstat (path, &st); if (ret == -1) { gf_msg_debug (this->name, 0, "Failed to stat entry %s :" " %s", path, strerror (errno)); @@ -3989,7 +3989,7 @@ recursive_rmdir (const char *delete_path) if (S_ISDIR (st.st_mode)) ret = recursive_rmdir (path); else - ret = unlink (path); + ret = sys_unlink (path); if (ret) { gf_msg_debug (this->name, 0, " Failed to remove %s. " @@ -4002,13 +4002,13 @@ recursive_rmdir (const char *delete_path) GF_FOR_EACH_ENTRY_IN_DIR (entry, dir); } - ret = closedir (dir); + ret = sys_closedir (dir); if (ret) { gf_msg_debug (this->name, 0, "Failed to close dir %s. Reason :" " %s", delete_path, strerror (errno)); } - ret = rmdir (delete_path); + ret = sys_rmdir (delete_path); if (ret) { gf_msg_debug (this->name, 0, "Failed to rmdir: %s,err: %s", delete_path, strerror (errno)); @@ -4094,7 +4094,7 @@ gf_nread (int fd, void *buf, size_t count) ssize_t read_bytes = 0; for (read_bytes = 0; read_bytes < count; read_bytes += ret) { - ret = read (fd, buf + read_bytes, count - read_bytes); + ret = sys_read (fd, buf + read_bytes, count - read_bytes); if (ret == 0) { break; } else if (ret < 0) { @@ -4117,7 +4117,7 @@ gf_nwrite (int fd, const void *buf, size_t count) ssize_t written = 0; for (written = 0; written != count; written += ret) { - ret = write (fd, buf + written, count - written); + ret = sys_write (fd, buf + written, count - written); if (ret < 0) { if (errno == EINTR) ret = 0; diff --git a/libglusterfs/src/compat.c b/libglusterfs/src/compat.c index e50f27bff90..621ff5f54c9 100644 --- a/libglusterfs/src/compat.c +++ b/libglusterfs/src/compat.c @@ -24,6 +24,7 @@ #include "common-utils.h" #include "iatt.h" #include "inode.h" +#include "syscall.h" #include "run.h" #include "libglusterfs-messages.h" @@ -570,7 +571,7 @@ gf_umount_lazy (char *xlname, char *path, int rmdir_flag) #ifdef GF_LINUX_HOST_OS if (!ret && rmdir_flag) { - ret = rmdir (path); + ret = sys_rmdir (path); if (ret) gf_msg (xlname, GF_LOG_WARNING, errno, LG_MSG_DIR_OP_FAILED, "rmdir %s", path); diff --git a/libglusterfs/src/event-epoll.c b/libglusterfs/src/event-epoll.c index 78eff9398a6..3fd580d9d1a 100644 --- a/libglusterfs/src/event-epoll.c +++ b/libglusterfs/src/event-epoll.c @@ -20,6 +20,7 @@ #include "event.h" #include "mem-pool.h" #include "common-utils.h" +#include "syscall.h" #include "libglusterfs-messages.h" @@ -227,7 +228,7 @@ event_slot_unref (struct event_pool *event_pool, struct event_slot_epoll *slot, event_slot_dealloc (event_pool, idx); if (do_close) - close (fd); + sys_close (fd); done: return; } @@ -866,7 +867,7 @@ event_pool_destroy_epoll (struct event_pool *event_pool) int ret = 0, i = 0, j = 0; struct event_slot_epoll *table = NULL; - ret = close (event_pool->fd); + ret = sys_close (event_pool->fd); for (i = 0; i < EVENT_EPOLL_TABLES; i++) { if (event_pool->ereg[i]) { diff --git a/libglusterfs/src/event-poll.c b/libglusterfs/src/event-poll.c index 51c0cf1f4e7..2006e33d33b 100644 --- a/libglusterfs/src/event-poll.c +++ b/libglusterfs/src/event-poll.c @@ -20,6 +20,7 @@ #include "event.h" #include "mem-pool.h" #include "common-utils.h" +#include "syscall.h" #include "libglusterfs-messages.h" @@ -49,7 +50,7 @@ __flush_fd (int fd, int idx, void *data, return ret; do { - ret = read (fd, buf, 64); + ret = sys_read (fd, buf, 64); if (ret == -1 && errno != EAGAIN) { gf_msg ("poll", GF_LOG_ERROR, errno, LG_MSG_FILE_OP_FAILED, "read on %d returned " @@ -128,8 +129,8 @@ event_pool_new_poll (int count, int eventthreadcount) if (ret == -1) { gf_msg ("poll", GF_LOG_ERROR, errno, LG_MSG_SET_PIPE_FAILED, "could not set pipe to non blocking mode"); - close (event_pool->breaker[0]); - close (event_pool->breaker[1]); + sys_close (event_pool->breaker[0]); + sys_close (event_pool->breaker[1]); event_pool->breaker[0] = event_pool->breaker[1] = -1; GF_FREE (event_pool->reg); @@ -142,8 +143,8 @@ event_pool_new_poll (int count, int eventthreadcount) gf_msg ("poll", GF_LOG_ERROR, errno, LG_MSG_SET_PIPE_FAILED, "could not set pipe to non blocking mode"); - close (event_pool->breaker[0]); - close (event_pool->breaker[1]); + sys_close (event_pool->breaker[0]); + sys_close (event_pool->breaker[1]); event_pool->breaker[0] = event_pool->breaker[1] = -1; GF_FREE (event_pool->reg); @@ -156,8 +157,8 @@ event_pool_new_poll (int count, int eventthreadcount) if (ret == -1) { gf_msg ("poll", GF_LOG_ERROR, 0, LG_MSG_REGISTER_PIPE_FAILED, "could not register pipe fd with poll event loop"); - close (event_pool->breaker[0]); - close (event_pool->breaker[1]); + sys_close (event_pool->breaker[0]); + sys_close (event_pool->breaker[1]); event_pool->breaker[0] = event_pool->breaker[1] = -1; GF_FREE (event_pool->reg); @@ -288,7 +289,7 @@ event_unregister_close_poll (struct event_pool *event_pool, int fd, ret = event_unregister_poll (event_pool, fd, idx_hint); - close (fd); + sys_close (fd); return ret; } @@ -506,11 +507,11 @@ event_pool_destroy_poll (struct event_pool *event_pool) { int ret = 0; - ret = close (event_pool->breaker[0]); + ret = sys_close (event_pool->breaker[0]); if (ret) return ret; - ret = close (event_pool->breaker[1]); + ret = sys_close (event_pool->breaker[1]); if (ret) return ret; diff --git a/libglusterfs/src/event.c b/libglusterfs/src/event.c index aeef67107f5..09ecce1599d 100644 --- a/libglusterfs/src/event.c +++ b/libglusterfs/src/event.c @@ -21,6 +21,7 @@ #include "mem-pool.h" #include "common-utils.h" #include "libglusterfs-messages.h" +#include "syscall.h" @@ -177,7 +178,7 @@ poller_destroy_handler (int fd, int idx, void *data, if (readfd < 0) return -1; - while (read (readfd, &buf, 1) > 0) { + while (sys_read (readfd, &buf, 1) > 0) { } return 0; } @@ -254,7 +255,7 @@ event_dispatch_destroy (struct event_pool *event_pool) int retry = 0; while (event_pool->activethreadcount > 0 && retry++ < 10) { - if (write (fd[1], "dummy", 6) == -1) + if (sys_write (fd[1], "dummy", 6) == -1) break; sleep_till.tv_sec = time (NULL) + 1; ret = pthread_cond_timedwait (&event_pool->cond, @@ -268,9 +269,9 @@ event_dispatch_destroy (struct event_pool *event_pool) out: if (fd[0] != -1) - close (fd[0]); + sys_close (fd[0]); if (fd[1] != -1) - close (fd[1]); + sys_close (fd[1]); return ret; } diff --git a/libglusterfs/src/graph.c b/libglusterfs/src/graph.c index ed12b1c0e7f..2e290bb20a1 100644 --- a/libglusterfs/src/graph.c +++ b/libglusterfs/src/graph.c @@ -15,6 +15,7 @@ #include <stdlib.h> #include "defaults.h" #include <unistd.h> +#include "syscall.h" #include "libglusterfs-messages.h" @@ -834,13 +835,13 @@ glusterfs_volfile_reconfigure (int oldvollen, FILE *newvolfile_fp, /*Calling unlink so that when the file is closed or program *terminates the tempfile is deleted. */ - u_ret = unlink(temp_file); + u_ret = sys_unlink(temp_file); if (u_ret < 0) { gf_msg ("glusterfsd-mgmt", GF_LOG_ERROR, errno, LG_MSG_TMPFILE_DELETE_FAILED, "Temporary file" " delete failed."); - close (file_desc); + sys_close (file_desc); goto out; } diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c index 7081b184de9..03f5ff89733 100644 --- a/libglusterfs/src/logging.c +++ b/libglusterfs/src/logging.c @@ -26,6 +26,8 @@ #include <sys/stat.h> +#include "syscall.h" + #define GF_JSON_MSG_LENGTH 8192 #define GF_SYSLOG_CEE_FORMAT \ "@cee: {\"msg\": \"%s\", \"gf_code\": \"%u\", \"gf_message\": \"%s\"}" @@ -369,7 +371,7 @@ gf_log_rotate(glusterfs_ctx_t *ctx) "logfile"); return; } - close (fd); + sys_close (fd); new_logfile = fopen (ctx->log.filename, "a"); if (!new_logfile) { @@ -689,7 +691,7 @@ gf_log_init (void *data, const char *file, const char *ident) gf_openlog (NULL, -1, LOG_DAEMON); } /* TODO: make FACILITY configurable than LOG_DAEMON */ - if (stat (GF_LOG_CONTROL_FILE, &buf) == 0) { + if (sys_stat (GF_LOG_CONTROL_FILE, &buf) == 0) { /* use syslog logging */ ctx->log.log_control_file_found = 1; } else { @@ -741,7 +743,7 @@ gf_log_init (void *data, const char *file, const char *ident) " \"%s\" (%s)\n", file, strerror (errno)); return -1; } - close (fd); + sys_close (fd); ctx->log.logfile = fopen (file, "a"); if (!ctx->log.logfile) { @@ -1234,7 +1236,7 @@ _gf_msg_nomem (const char *domain, const char *file, /* write directly to the fd to prevent out of order * message and stack */ - ret = write (fd, msg, wlen); + ret = sys_write (fd, msg, wlen); if (ret == -1) { pthread_mutex_unlock (&ctx->log.logfile_mutex); goto out; @@ -2179,7 +2181,7 @@ _gf_log (const char *domain, const char *file, const char *function, int line, "failed to open logfile"); return -1; } - close (fd); + sys_close (fd); new_logfile = fopen (ctx->log.filename, "a"); if (!new_logfile) { @@ -2353,7 +2355,7 @@ gf_cmd_log_init (const char *filename) LG_MSG_FILE_OP_FAILED, "failed to open cmd_log_file"); return -1; } - close (fd); + sys_close (fd); ctx->log.cmdlogfile = fopen (ctx->log.cmd_log_filename, "a"); if (!ctx->log.cmdlogfile){ diff --git a/libglusterfs/src/run.c b/libglusterfs/src/run.c index 6018a58ad5f..cb709546637 100644 --- a/libglusterfs/src/run.c +++ b/libglusterfs/src/run.c @@ -24,6 +24,7 @@ #include <signal.h> #include <sys/wait.h> #include <sys/resource.h> +#include "syscall.h" #ifdef RUN_STANDALONE #define GF_CALLOC(n, s, t) calloc(n, s) @@ -241,18 +242,18 @@ runner_start (runner_t *runner) switch (runner->chpid) { case -1: errno_priv = errno; - close (xpi[0]); - close (xpi[1]); + sys_close (xpi[0]); + sys_close (xpi[1]); for (i = 0; i < 3; i++) { - close (pi[i][0]); - close (pi[i][1]); + sys_close (pi[i][0]); + sys_close (pi[i][1]); } errno = errno_priv; return -1; case 0: for (i = 0; i < 3; i++) - close (pi[i][i ? 0 : 1]); - close (xpi[0]); + sys_close (pi[i][i ? 0 : 1]); + sys_close (xpi[0]); ret = 0; for (i = 0; i < 3; i++) { @@ -278,15 +279,15 @@ runner_start (runner_t *runner) struct dirent *de = NULL; char *e = NULL; - d = opendir ("/proc/self/fd"); + d = sys_opendir ("/proc/self/fd"); if (d) { - while ((de = readdir (d))) { + while ((de = sys_readdir (d))) { i = strtoul (de->d_name, &e, 10); if (*e == '\0' && i > 2 && i != dirfd (d) && i != xpi[1]) - close (i); + sys_close (i); } - closedir (d); + sys_closedir (d); } else ret = -1; #else /* !GF_LINUX_HOST_OS */ @@ -296,7 +297,7 @@ runner_start (runner_t *runner) for (i = 3; i < rl.rlim_cur; i++) { if (i != xpi[1]) - close (i); + sys_close (i); } #endif /* !GF_LINUX_HOST_OS */ } @@ -308,14 +309,14 @@ runner_start (runner_t *runner) execvp (runner->argv[0], runner->argv); } - ret = write (xpi[1], &errno, sizeof (errno)); + ret = sys_write (xpi[1], &errno, sizeof (errno)); _exit (1); } errno_priv = errno; for (i = 0; i < 3; i++) - close (pi[i][i ? 1 : 0]); - close (xpi[1]); + sys_close (pi[i][i ? 1 : 0]); + sys_close (xpi[1]); if (ret == -1) { for (i = 0; i < 3; i++) { if (runner->chio[i]) { @@ -324,8 +325,8 @@ runner_start (runner_t *runner) } } } else { - ret = read (xpi[0], (char *)&errno_priv, sizeof (errno_priv)); - close (xpi[0]); + ret = sys_read (xpi[0], (char *)&errno_priv, sizeof (errno_priv)); + sys_close (xpi[0]); if (ret <= 0) return 0; GF_ASSERT (ret == sizeof (errno_priv)); @@ -371,7 +372,7 @@ runner_end (runner_t *runner) GF_FREE (runner->argv); } for (i = 0; i < 3; i++) - close (runner->chfd[i]); + sys_close (runner->chfd[i]); return ret; } diff --git a/libglusterfs/src/statedump.c b/libglusterfs/src/statedump.c index fc66421be2f..caf228a8b01 100644 --- a/libglusterfs/src/statedump.c +++ b/libglusterfs/src/statedump.c @@ -15,6 +15,7 @@ #include "statedump.h" #include "stack.h" #include "common-utils.h" +#include "syscall.h" #ifdef HAVE_MALLOC_H @@ -73,7 +74,7 @@ gf_proc_dump_open (char *tmpname) static void gf_proc_dump_close (void) { - close (gf_dump_fd); + sys_close (gf_dump_fd); gf_dump_fd = -1; } @@ -131,7 +132,7 @@ gf_proc_dump_add_section_fd (char *key, va_list ap) GF_DUMP_MAX_BUF_LEN - strlen (buf), key, ap); snprintf (buf + strlen(buf), GF_DUMP_MAX_BUF_LEN - strlen (buf), "]\n"); - return write (gf_dump_fd, buf, strlen (buf)); + return sys_write (gf_dump_fd, buf, strlen (buf)); } @@ -184,7 +185,7 @@ gf_proc_dump_write_fd (char *key, char *value, va_list ap) offset = strlen (buf); snprintf (buf + offset, GF_DUMP_MAX_BUF_LEN - offset, "\n"); - return write (gf_dump_fd, buf, strlen (buf)); + return sys_write (gf_dump_fd, buf, strlen (buf)); } @@ -668,7 +669,7 @@ gf_proc_dump_parse_set_option (char *key, char *value) //None of dump options match the key, return back snprintf (buf, sizeof (buf), "[Warning]:None of the options " "matched key : %s\n", key); - ret = write (gf_dump_fd, buf, strlen (buf)); + ret = sys_write (gf_dump_fd, buf, strlen (buf)); if (ret >= 0) ret = -1; @@ -810,7 +811,7 @@ gf_proc_dump_info (int signum, glusterfs_ctx_t *ctx) timestr); //swallow the errors of write for start and end marker - ret = write (gf_dump_fd, sign_string, strlen (sign_string)); + ret = sys_write (gf_dump_fd, sign_string, strlen (sign_string)); memset (sign_string, 0, sizeof (sign_string)); memset (timestr, 0, sizeof (timestr)); @@ -857,12 +858,12 @@ gf_proc_dump_info (int signum, glusterfs_ctx_t *ctx) snprintf (sign_string, sizeof (sign_string), "\nDUMP-END-TIME: %s", timestr); - ret = write (gf_dump_fd, sign_string, strlen (sign_string)); + ret = sys_write (gf_dump_fd, sign_string, strlen (sign_string)); out: if (gf_dump_fd != -1) gf_proc_dump_close (); - rename (tmp_dump_name, path); + sys_rename (tmp_dump_name, path); GF_FREE (dump_options.dump_path); dump_options.dump_path = NULL; gf_proc_dump_unlock (); diff --git a/libglusterfs/src/store.c b/libglusterfs/src/store.c index b44ee0a12d6..1591627b741 100644 --- a/libglusterfs/src/store.c +++ b/libglusterfs/src/store.c @@ -15,13 +15,16 @@ #include "store.h" #include "dict.h" #include "xlator.h" +#include "syscall.h" #include "libglusterfs-messages.h" + + int32_t gf_store_mkdir (char *path) { int32_t ret = -1; - ret = mkdir (path, 0777); + ret = sys_mkdir (path, 0777); if ((-1 == ret) && (EEXIST != errno)) { gf_msg ("", GF_LOG_ERROR, errno, LG_MSG_DIR_OP_FAILED, "mkdir()" @@ -93,7 +96,7 @@ gf_store_sync_direntry (char *path) goto out; } - ret = fsync (dirfd); + ret = sys_fsync (dirfd); if (ret) { gf_msg (this->name, GF_LOG_ERROR, errno, LG_MSG_DIR_OP_FAILED, "Failed to fsync %s.", pdir); @@ -103,7 +106,7 @@ gf_store_sync_direntry (char *path) ret = 0; out: if (dirfd >= 0) { - ret = close (dirfd); + ret = sys_close (dirfd); if (ret) { gf_msg (this->name, GF_LOG_ERROR, errno, LG_MSG_DIR_OP_FAILED, "Failed to close %s", pdir); @@ -125,14 +128,14 @@ gf_store_rename_tmppath (gf_store_handle_t *shandle) GF_VALIDATE_OR_GOTO ("store", shandle, out); GF_VALIDATE_OR_GOTO ("store", shandle->path, out); - ret = fsync (shandle->tmp_fd); + ret = sys_fsync (shandle->tmp_fd); if (ret) { gf_msg (THIS->name, GF_LOG_ERROR, errno, LG_MSG_FILE_OP_FAILED, "Failed to fsync %s", shandle->path); goto out; } snprintf (tmppath, sizeof (tmppath), "%s.tmp", shandle->path); - ret = rename (tmppath, shandle->path); + ret = sys_rename (tmppath, shandle->path); if (ret) { gf_msg (THIS->name, GF_LOG_ERROR, errno, LG_MSG_FILE_OP_FAILED, "Failed to rename %s to %s", tmppath, @@ -143,7 +146,7 @@ gf_store_rename_tmppath (gf_store_handle_t *shandle) ret = gf_store_sync_direntry (tmppath); out: if (shandle && shandle->tmp_fd >= 0) { - close (shandle->tmp_fd); + sys_close (shandle->tmp_fd); shandle->tmp_fd = -1; } return ret; @@ -159,7 +162,7 @@ gf_store_unlink_tmppath (gf_store_handle_t *shandle) GF_VALIDATE_OR_GOTO ("store", shandle->path, out); snprintf (tmppath, sizeof (tmppath), "%s.tmp", shandle->path); - ret = unlink (tmppath); + ret = sys_unlink (tmppath); if (ret && (errno != ENOENT)) { gf_msg ("", GF_LOG_ERROR, errno, LG_MSG_FILE_OP_FAILED, "Failed to mv %s to %s", tmppath, @@ -169,7 +172,7 @@ gf_store_unlink_tmppath (gf_store_handle_t *shandle) } out: if (shandle && shandle->tmp_fd >= 0) { - close (shandle->tmp_fd); + sys_close (shandle->tmp_fd); shandle->tmp_fd = -1; } return ret; @@ -243,7 +246,7 @@ gf_store_retrieve_value (gf_store_handle_t *handle, char *key, char **value) handle->fd = open (handle->path, O_RDWR); else /* handle->fd is valid already, kept open for lockf() */ - lseek (handle->fd, 0, SEEK_SET); + sys_lseek (handle->fd, 0, SEEK_SET); if (handle->fd == -1) { gf_msg ("", GF_LOG_ERROR, errno, LG_MSG_FILE_OP_FAILED, @@ -261,7 +264,7 @@ gf_store_retrieve_value (gf_store_handle_t *handle, char *key, char **value) goto out; } - ret = fstat (handle->fd, &st); + ret = sys_fstat (handle->fd, &st); if (ret < 0) { gf_msg ("", GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, "stat on file %s failed", handle->path); @@ -315,7 +318,7 @@ out: if (handle->fd > 0 && handle->locked == F_ULOCK) { /* only invalidate handle->fd if not locked */ - close (handle->fd); + sys_close (handle->fd); } GF_FREE (free_str); @@ -407,7 +410,7 @@ gf_store_handle_new (const char *path, gf_store_handle_t **handle) ret = 0; out: if (fd >= 0) - close (fd); + sys_close (fd); if (ret == -1) { GF_FREE (spath); @@ -424,7 +427,7 @@ gf_store_handle_retrieve (char *path, gf_store_handle_t **handle) int32_t ret = -1; struct stat statbuf = {0}; - ret = stat (path, &statbuf); + ret = sys_stat (path, &statbuf); if (ret) { gf_msg ("", GF_LOG_ERROR, errno, LG_MSG_PATH_NOT_FOUND, "Path " "corresponding to %s.", path); @@ -548,7 +551,7 @@ gf_store_iter_get_next (gf_store_iter_t *iter, char **key, char **value, GF_ASSERT (key); GF_ASSERT (value); - ret = stat (iter->filepath, &st); + ret = sys_stat (iter->filepath, &st); if (ret < 0) { gf_msg ("", GF_LOG_WARNING, errno, LG_MSG_FILE_OP_FAILED, "stat on file failed"); @@ -717,7 +720,7 @@ gf_store_unlock (gf_store_handle_t *sh) gf_msg ("", GF_LOG_ERROR, errno, LG_MSG_UNLOCK_FAILED, "Failed to release lock on '%s'", sh->path); - close (sh->fd); + sys_close (sh->fd); } int |