diff options
| -rw-r--r-- | cli/src/cli-rpc-ops.c | 58 | ||||
| -rw-r--r-- | cli/src/cli-xml-output.c | 24 | ||||
| -rw-r--r-- | cli/src/cli.c | 6 | ||||
| -rw-r--r-- | glusterfsd/src/glusterfsd.c | 30 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.c | 31 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 28 | ||||
| -rw-r--r-- | libglusterfs/src/graph.c | 15 | ||||
| -rw-r--r-- | libglusterfs/src/logging.c | 73 | ||||
| -rwxr-xr-x | libglusterfsclient/src/libglusterfsclient.c | 6 | ||||
| -rw-r--r-- | rpc/rpc-lib/src/rpc-clnt.c | 13 | ||||
| -rw-r--r-- | xlators/debug/io-stats/src/io-stats.c | 29 | ||||
| -rw-r--r-- | xlators/debug/trace/src/trace.c | 58 | ||||
| -rw-r--r-- | xlators/features/locks/src/posix.c | 31 | ||||
| -rw-r--r-- | xlators/features/marker/utils/src/gsyncd.c | 3 | ||||
| -rw-r--r-- | xlators/features/trash/src/trash.c | 36 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-mountbroker.c | 3 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-replace-brick.c | 13 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-store.c | 5 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 8 | ||||
| -rw-r--r-- | xlators/performance/io-cache/src/io-cache.c | 7 | ||||
| -rw-r--r-- | xlators/performance/quick-read/src/quick-read.c | 7 | 
21 files changed, 228 insertions, 256 deletions
diff --git a/cli/src/cli-rpc-ops.c b/cli/src/cli-rpc-ops.c index b05eab1dd4f..ffa434e2cb2 100644 --- a/cli/src/cli-rpc-ops.c +++ b/cli/src/cli-rpc-ops.c @@ -4049,16 +4049,16 @@ gf_cli3_1_top_volume_cbk (struct rpc_req *req, struct iovec *iov,  {          gf_cli_rsp                        rsp   = {0,};          int                               ret   = -1; -        dict_t                            *dict = NULL; -        gf1_cli_stats_op                op = GF_CLI_STATS_NONE; +        dict_t                           *dict = NULL; +        gf1_cli_stats_op                  op = GF_CLI_STATS_NONE;          char                              key[256] = {0};          int                               i = 0;          int32_t                           brick_count = 0;          char                              brick[1024];          int32_t                           members = 0; -        char                              *filename; -        char                              *bricks; -        uint64_t                           value = 0; +        char                             *filename; +        char                             *bricks; +        uint64_t                          value = 0;          int32_t                           j = 0;          gf1_cli_top_op                    top_op = GF_CLI_TOP_NONE;          uint64_t                          nr_open = 0; @@ -4066,10 +4066,9 @@ gf_cli3_1_top_volume_cbk (struct rpc_req *req, struct iovec *iov,          double                            throughput = 0;          double                            time = 0;          long int                          time_sec = 0; -        long int                           time_usec = 0; -        struct tm                         *tm = NULL; +        long int                          time_usec = 0;          char                              timestr[256] = {0, }; -        char                              *openfd_str = NULL; +        char                             *openfd_str = NULL;          if (-1 == req->rpc_status) {                  goto out; @@ -4222,11 +4221,9 @@ gf_cli3_1_top_volume_cbk (struct rpc_req *req, struct iovec *iov,                                  ret = dict_get_int32 (dict, key, (int32_t *)&time_usec);                                  if (ret)                                          goto out; -                                tm    = localtime (&time_sec); -                                if (!tm) -                                        goto out; -                                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                                snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                                gf_time_fmt (timestr, sizeof timestr, +                                             time_sec, gf_timefmt_FT); +                                snprintf (timestr + strlen (timestr), sizeof timestr - strlen (timestr),                                    ".%"GF_PRI_SUSECONDS, time_usec);                                  if (strlen (filename) < VOL_TOP_PERF_FILENAME_DEF_WIDTH)                                          cli_out ("%*"PRIu64" %-*s %-*s", @@ -5812,52 +5809,43 @@ cmd_heal_volume_brick_out (dict_t *dict, int brick)          uint64_t        num_entries = 0;          int             ret = 0;          char            key[256] = {0}; -        char            *hostname = NULL; -        char            *path = NULL; -        char            *status = NULL; +        char           *hostname = NULL; +        char           *path = NULL; +        char           *status = NULL;          uint64_t        i = 0;          uint32_t        time = 0; -        char            timestr[256] = {0}; -        struct tm       tm = {0}; -        time_t          ltime = 0; +        char            timestr[32] = {0}; -        snprintf (key, sizeof (key), "%d-hostname", brick); +        snprintf (key, sizeof key, "%d-hostname", brick);          ret = dict_get_str (dict, key, &hostname);          if (ret)                  goto out; -        snprintf (key, sizeof (key), "%d-path", brick); +        snprintf (key, sizeof key, "%d-path", brick);          ret = dict_get_str (dict, key, &path);          if (ret)                  goto out;          cli_out ("\nBrick %s:%s", hostname, path); -        snprintf (key, sizeof (key), "%d-count", brick); +        snprintf (key, sizeof key, "%d-count", brick);          ret = dict_get_uint64 (dict, key, &num_entries);          cli_out ("Number of entries: %"PRIu64, num_entries); -        snprintf (key, sizeof (key), "%d-status", brick); +        snprintf (key, sizeof key, "%d-status", brick);          ret = dict_get_str (dict, key, &status);          if (status && strlen (status))                  cli_out ("Status: %s", status);          for (i = 0; i < num_entries; i++) { -                snprintf (key, sizeof (key), "%d-%"PRIu64, brick, i); +                snprintf (key, sizeof key, "%d-%"PRIu64, brick, i);                  ret = dict_get_str (dict, key, &path);                  if (ret)                          continue;                  time = 0; -                snprintf (key, sizeof (key), "%d-%"PRIu64"-time", brick, i); +                snprintf (key, sizeof key, "%d-%"PRIu64"-time", brick, i);                  ret = dict_get_uint32 (dict, key, &time);                  if (!time) {                          cli_out ("%s", path);                  } else { -                        ltime = time; -                        memset (&tm, 0, sizeof (tm)); -                        if (!localtime_r (<ime, &tm)) { -                                snprintf (timestr, sizeof (timestr), -                                          "Invalid time"); -                        } else { -                                strftime (timestr, sizeof (timestr), -                                          "%Y-%m-%d %H:%M:%S", &tm); -                        } -                        if (i ==0) { +                        gf_time_fmt (timestr, sizeof timestr, +                                     time, gf_timefmt_FT); +                        if (i == 0) {                                  cli_out ("at                    path on brick");                                  cli_out ("-----------------------------------");                          } diff --git a/cli/src/cli-xml-output.c b/cli/src/cli-xml-output.c index eb45a1fa04b..83a4420559f 100644 --- a/cli/src/cli-xml-output.c +++ b/cli/src/cli-xml-output.c @@ -1429,14 +1429,13 @@ int  cli_xml_output_vol_top_rw_perf (xmlTextWriterPtr writer, dict_t *dict,                                  int brick_index, int member_index)  { -        int             ret = -1; -        char            *filename = NULL; -        uint64_t        throughput = 0; -        long int        time_sec = 0; -        long int        time_usec = 0; -        struct tm       *tm = NULL; -        char            timestr[256] = {0,}; -        char            key[1024] = {0,}; +        int        ret = -1; +        char      *filename = NULL; +        uint64_t   throughput = 0; +        long int   time_sec = 0; +        long int   time_usec = 0; +        char       timestr[256] = {0,}; +        char       key[1024] = {0,};          /* <file> */          ret = xmlTextWriterStartElement (writer, (xmlChar *)"file"); @@ -1474,14 +1473,9 @@ cli_xml_output_vol_top_rw_perf (xmlTextWriterPtr writer, dict_t *dict,          if (ret)                  goto out; -        tm = localtime (&time_sec); -        if (!tm) { -                ret = -1; -                goto out; -        } -        strftime (timestr, sizeof (timestr), "%Y-%m-%d %H:%M:%S", tm); +        gf_time_fmt (timestr, sizeof timestr, time_sec, gf_timefmt_FT);          snprintf (timestr + strlen (timestr), -                  sizeof (timestr) - strlen (timestr), +                  sizeof timestr - strlen (timestr),                    ".%"GF_PRI_SUSECONDS, time_usec);          ret = xmlTextWriterWriteFormatElement (writer, (xmlChar *)"time",                                                 "%s", timestr); diff --git a/cli/src/cli.c b/cli/src/cli.c index 8ed59897c6a..62a3a94ea1d 100644 --- a/cli/src/cli.c +++ b/cli/src/cli.c @@ -108,7 +108,6 @@ generate_uuid ()          char           tmp_str[1024] = {0,};          char           hostname[256] = {0,};          struct timeval tv = {0,}; -        struct tm      now = {0, };          char           now_str[32];          if (gettimeofday (&tv, NULL) == -1) { @@ -123,9 +122,8 @@ generate_uuid ()                          strerror (errno));          } -        localtime_r (&tv.tv_sec, &now); -        strftime (now_str, 32, "%Y/%m/%d-%H:%M:%S", &now); -        snprintf (tmp_str, 1024, "%s-%d-%s:%" +        gf_time_fmt (now_str, sizeof now_str, tv.tv_sec, gf_timefmt_Ymd_T); +        snprintf (tmp_str, sizeof tmp_str, "%s-%d-%s:%"  #ifdef GF_DARWIN_HOST_OS                    PRId32,  #else diff --git a/glusterfsd/src/glusterfsd.c b/glusterfsd/src/glusterfsd.c index 0e9ff2ccc7f..51f0a30c9a9 100644 --- a/glusterfsd/src/glusterfsd.c +++ b/glusterfsd/src/glusterfsd.c @@ -917,7 +917,6 @@ generate_uuid ()          char           tmp_str[1024] = {0,};          char           hostname[256] = {0,};          struct timeval tv = {0,}; -        struct tm      now = {0, };          char           now_str[32];          if (gettimeofday (&tv, NULL) == -1) { @@ -926,15 +925,14 @@ generate_uuid ()                          strerror (errno));          } -        if (gethostname (hostname, 256) == -1) { +        if (gethostname (hostname, sizeof hostname) == -1) {                  gf_log ("glusterfsd", GF_LOG_ERROR,                          "gethostname: failed %s",                          strerror (errno));          } -        localtime_r (&tv.tv_sec, &now); -        strftime (now_str, 32, "%Y/%m/%d-%H:%M:%S", &now); -        snprintf (tmp_str, 1024, "%s-%d-%s:%" GF_PRI_SUSECONDS, +        gf_time_fmt (now_str, sizeof now_str, tv.tv_sec, gf_timefmt_Ymd_T); +        snprintf (tmp_str, sizeof tmp_str, "%s-%d-%s:%" GF_PRI_SUSECONDS,                    hostname, getpid(), now_str, tv.tv_usec);          return gf_strdup (tmp_str); @@ -1176,16 +1174,14 @@ gf_check_and_set_mem_acct (int argc, char *argv[], glusterfs_ctx_t *ctx)  int  parse_cmdline (int argc, char *argv[], glusterfs_ctx_t *ctx)  { -        int               process_mode = 0; -        int               ret = 0; -        struct stat       stbuf = {0, }; -        struct tm        *tm = NULL; -        time_t            utime; -        char              timestr[256]; -        char              tmp_logfile[1024] = { 0 }; -        char              *tmp_logfile_dyn = NULL; -        char              *tmp_logfilebase = NULL; -        cmd_args_t        *cmd_args = NULL; +        int          process_mode = 0; +        int          ret = 0; +        struct stat  stbuf = {0, }; +        char         timestr[32]; +        char         tmp_logfile[1024] = { 0 }; +        char        *tmp_logfile_dyn = NULL; +        char        *tmp_logfilebase = NULL; +        cmd_args_t  *cmd_args = NULL;          cmd_args = &ctx->cmd_args; @@ -1242,8 +1238,8 @@ parse_cmdline (int argc, char *argv[], glusterfs_ctx_t *ctx)                       (S_ISREG (stbuf.st_mode) || S_ISLNK (stbuf.st_mode))) ||                      (ret == -1)) {                          /* Have separate logfile per run */ -                        tm = localtime (&utime); -                        strftime (timestr, 256, "%Y%m%d.%H%M%S", tm); +                        gf_time_fmt (timestr, sizeof timestr, time (NULL), +                                     gf_timefmt_FT);                          sprintf (tmp_logfile, "%s.%s.%d",                                   cmd_args->log_file, timestr, getpid ()); diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 3e6543be75c..dbcee77be80 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -342,10 +342,8 @@ void  gf_print_trace (int32_t signum)  {          extern FILE *gf_log_logfile; -        struct tm   *tm = NULL;          char         msg[1024] = {0,}; -        char         timestr[256] = {0,}; -        time_t       utime = 0; +        char         timestr[64] = {0,};          int          ret = 0;          int          fd = 0; @@ -394,9 +392,7 @@ gf_print_trace (int32_t signum)          {                  /* Dump the timestamp of the crash too, so the previous logs                     can be related */ -                utime = time (NULL); -                tm    = localtime (&utime); -                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S\n", tm); +                gf_time_fmt (timestr, sizeof timestr, time (NULL), gf_timefmt_FT);                  ret = write (fd, "time of crash: ", 15);                  if (ret < 0)                          goto out; @@ -2038,3 +2034,26 @@ gf_strip_whitespace (char *str, int len)          GF_FREE (new_str);          return new_len;  } + +static const char *__gf_timefmts[] = { +        "%F %T", +        "%Y/%m/%d-%T", +        "%b %d %T", +        "%F %H%M%S" +}; + +static const char *__gf_zerotimes[] = { +        "0000-00-00 00:00:00", +        "0000/00/00-00:00:00", +        "xxx 00 00:00:00", +        "0000-00-00 000000" +}; + +void +_gf_timestuff (gf_timefmts *fmt, const char ***fmts, const char ***zeros) +{ +        *fmt = gf_timefmt_last; +        *fmts = __gf_timefmts; +        *zeros = __gf_zerotimes; +} + diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index d5880291250..3df6dd91ccb 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -392,6 +392,34 @@ memdup (const void *ptr, size_t size)  	return newptr;  } +typedef enum { +        gf_timefmt_default = 0, +        gf_timefmt_FT = 0,  /* YYYY-MM-DD hh:mm:ss */ +        gf_timefmt_Ymd_T,   /* YYYY/MM-DD-hh:mm:ss */ +        gf_timefmt_bdT,     /* ddd DD hh:mm:ss */ +        gf_timefmt_F_HMS,   /* YYYY-MM-DD hhmmss */ +        gf_timefmt_last +} gf_timefmts; + +static inline void +gf_time_fmt (char *dst, size_t sz_dst, time_t utime, unsigned int fmt) +{ +        extern void _gf_timestuff (gf_timefmts *, const char ***, const char ***); +        static gf_timefmts timefmt_last = (gf_timefmts) -1; +        static const char **fmts; +        static const char **zeros; +        struct tm tm; + +        if (timefmt_last == -1) +                _gf_timestuff (&timefmt_last, &fmts, &zeros); +        if (timefmt_last < fmt) fmt = gf_timefmt_default; +        if (gmtime_r (&utime, &tm) != NULL) { +                strftime (dst, sz_dst, fmts[fmt], &tm); +        } else { +                strncpy (dst, zeros[fmt], sz_dst); +        } +} +  /*   * rounds up nr to power of two. If nr is already a power of two, just returns   * nr diff --git a/libglusterfs/src/graph.c b/libglusterfs/src/graph.c index 65cbb2e8323..a42ae7cd7fa 100644 --- a/libglusterfs/src/graph.c +++ b/libglusterfs/src/graph.c @@ -28,20 +28,17 @@ _gf_dump_details (int argc, char **argv)  {          extern FILE *gf_log_logfile;          int          i = 0; -        char         timestr[256]; +        char         timestr[64];          time_t       utime = 0; -        struct tm   *tm = NULL;          pid_t        mypid = 0;          struct utsname uname_buf = {{0, }, };          int            uname_ret = -1; -        utime = time (NULL); -        tm    = localtime (&utime);          mypid = getpid ();          uname_ret   = uname (&uname_buf); -        /* Which git? What time? */ -        strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); +        utime = time (NULL); +        gf_time_fmt (timestr, sizeof timestr, utime, gf_timefmt_FT);          fprintf (gf_log_logfile,                   "========================================"                   "========================================\n"); @@ -340,8 +337,7 @@ fill_uuid (char *uuid, int size)  {          char           hostname[256] = {0,};          struct timeval tv = {0,}; -        struct tm      now = {0, }; -        char           now_str[32]; +        char           now_str[64];          if (gettimeofday (&tv, NULL) == -1) {                  gf_log ("graph", GF_LOG_ERROR, @@ -355,8 +351,7 @@ fill_uuid (char *uuid, int size)                          strerror (errno));          } -        localtime_r (&tv.tv_sec, &now); -        strftime (now_str, 32, "%Y/%m/%d-%H:%M:%S", &now); +        gf_time_fmt (now_str, sizeof now_str, tv.tv_sec, gf_timefmt_Ymd_T);          snprintf (uuid, size, "%s-%d-%s:%"GF_PRI_SUSECONDS,                    hostname, getpid(), now_str, tv.tv_usec); diff --git a/libglusterfs/src/logging.c b/libglusterfs/src/logging.c index c47237f829e..0cfeed586d3 100644 --- a/libglusterfs/src/logging.c +++ b/libglusterfs/src/logging.c @@ -206,13 +206,12 @@ _gf_log_nomem (const char *domain, const char *file,                 size_t size)  {          const char     *basename        = NULL; -        struct tm      *tm              = NULL;          xlator_t       *this            = NULL;          struct timeval  tv              = {0,};          int             ret             = 0; -        char            msg[8092]; -        char            timestr[256]; -        char            callstr[4096]; +        char            msg[8092]       = {0,}; +        char            timestr[256]    = {0,}; +        char            callstr[4096]   = {0,};          this = THIS; @@ -272,12 +271,11 @@ _gf_log_nomem (const char *domain, const char *file,          if (-1 == ret)                  goto out; -        tm    = localtime (&tv.tv_sec); -          pthread_mutex_lock (&logfile_mutex);          { -                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                gf_time_fmt (timestr, sizeof timestr, tv.tv_sec, gf_timefmt_FT); +                snprintf (timestr + strlen (timestr), +                          sizeof timestr - strlen (timestr),                            ".%"GF_PRI_SUSECONDS, tv.tv_usec);                  basename = strrchr (file, '/'); @@ -321,7 +319,6 @@ _gf_log_callingfn (const char *domain, const char *file, const char *function,                     int line, gf_loglevel_t level, const char *fmt, ...)  {          const char     *basename        = NULL; -        struct tm      *tm              = NULL;          xlator_t       *this            = NULL;          char           *str1            = NULL;          char           *str2            = NULL; @@ -391,14 +388,13 @@ _gf_log_callingfn (const char *domain, const char *file, const char *function,          if (-1 == ret)                  goto out; -        tm    = localtime (&tv.tv_sec); -          pthread_mutex_lock (&logfile_mutex);          {                  va_start (ap, fmt); -                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                gf_time_fmt (timestr, sizeof timestr, tv.tv_sec, gf_timefmt_FT); +                snprintf (timestr + strlen (timestr), +                          sizeof timestr - strlen (timestr),                            ".%"GF_PRI_SUSECONDS, tv.tv_usec);                  basename = strrchr (file, '/'); @@ -464,20 +460,18 @@ int  _gf_log (const char *domain, const char *file, const char *function, int line,           gf_loglevel_t level, const char *fmt, ...)  { -        const char  *basename = NULL; -        FILE        *new_logfile = NULL; -        va_list      ap; -        struct tm   *tm = NULL; -        char         timestr[256]; +        const char    *basename = NULL; +        FILE          *new_logfile = NULL; +        va_list        ap; +        char           timestr[256] = {0,};          struct timeval tv = {0,}; - -        char        *str1 = NULL; -        char        *str2 = NULL; -        char        *msg  = NULL; -        size_t       len  = 0; -        int          ret  = 0; -        int          fd   = -1; -        xlator_t    *this = NULL; +        char          *str1 = NULL; +        char          *str2 = NULL; +        char          *msg  = NULL; +        size_t         len  = 0; +        int            ret  = 0; +        int            fd   = -1; +        xlator_t      *this = NULL;          this = THIS; @@ -538,14 +532,13 @@ log:          if (-1 == ret)                  goto out; -        tm    = localtime (&tv.tv_sec); -          pthread_mutex_lock (&logfile_mutex);          {                  va_start (ap, fmt); -                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                gf_time_fmt (timestr, sizeof timestr, tv.tv_sec, gf_timefmt_FT); +                snprintf (timestr + strlen (timestr), +                          sizeof timestr - strlen (timestr),                            ".%"GF_PRI_SUSECONDS, tv.tv_usec);                  basename = strrchr (file, '/'); @@ -664,15 +657,14 @@ gf_cmd_log_init (const char *filename)  int  gf_cmd_log (const char *domain, const char *fmt, ...)  { -        va_list      ap; -        struct tm   *tm = NULL; -        char         timestr[256]; +        va_list        ap; +        char           timestr[64];          struct timeval tv = {0,}; -        char        *str1 = NULL; -        char        *str2 = NULL; -        char        *msg  = NULL; -        size_t       len  = 0; -        int          ret  = 0; +        char          *str1 = NULL; +        char          *str2 = NULL; +        char          *msg  = NULL; +        size_t         len  = 0; +        int            ret  = 0;          if (!cmdlogfile)                  return -1; @@ -687,11 +679,8 @@ gf_cmd_log (const char *domain, const char *fmt, ...)          ret = gettimeofday (&tv, NULL);          if (ret == -1)                  goto out; - -        tm = localtime (&tv.tv_sec); -          va_start (ap, fmt); -        strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); +        gf_time_fmt (timestr, sizeof timestr, tv.tv_sec, gf_timefmt_FT);          snprintf (timestr + strlen (timestr), 256 - strlen (timestr),                    ".%"GF_PRI_SUSECONDS, tv.tv_usec); diff --git a/libglusterfsclient/src/libglusterfsclient.c b/libglusterfsclient/src/libglusterfsclient.c index aaff49416a9..39b5bea5068 100755 --- a/libglusterfsclient/src/libglusterfsclient.c +++ b/libglusterfsclient/src/libglusterfsclient.c @@ -110,7 +110,6 @@ zr_build_process_uuid ()  	char           tmp_str[1024] = {0,};  	char           hostname[256] = {0,};  	struct timeval tv = {0,}; -	struct tm      now = {0, };  	char           now_str[32];  	if (-1 == gettimeofday(&tv, NULL)) { @@ -125,9 +124,8 @@ zr_build_process_uuid ()  			strerror (errno));  	} -	localtime_r (&tv.tv_sec, &now); -	strftime (now_str, 32, "%Y/%m/%d-%H:%M:%S", &now); -	snprintf (tmp_str, 1024, "%s-%d-%s:%ld",  +        gf_time_fmt (now_str, sizeof now_str, tv.tv_sec, gf_timefmt_Ymd_T); +	snprintf (tmp_str, sizeof tmp_str, "%s-%d-%s:%ld",   		  hostname, getpid(), now_str, tv.tv_usec);  	return strdup (tmp_str); diff --git a/rpc/rpc-lib/src/rpc-clnt.c b/rpc/rpc-lib/src/rpc-clnt.c index f011de5de0c..c530698ee3a 100644 --- a/rpc/rpc-lib/src/rpc-clnt.c +++ b/rpc/rpc-lib/src/rpc-clnt.c @@ -144,7 +144,6 @@ call_bail (void *data)          struct saved_frame    *saved_frame = NULL;          struct saved_frame    *trav = NULL;          struct saved_frame    *tmp = NULL; -        struct tm              frame_sent_tm;          char                   frame_sent[256] = {0,};          struct timeval         timeout = {0,};          struct iovec           iov = {0,}; @@ -191,8 +190,8 @@ call_bail (void *data)          pthread_mutex_unlock (&conn->lock);          list_for_each_entry_safe (trav, tmp, &list, list) { -                localtime_r (&trav->saved_at.tv_sec, &frame_sent_tm); -                strftime (frame_sent, 32, "%Y-%m-%d %H:%M:%S", &frame_sent_tm); +                gf_time_fmt (frame_sent, sizeof frame_sent, +                             trav->saved_at.tv_sec, gf_timefmt_FT);                  snprintf (frame_sent + strlen (frame_sent),                            256 - strlen (frame_sent),                            ".%"GF_PRI_SUSECONDS, trav->saved_at.tv_usec); @@ -343,17 +342,15 @@ saved_frames_unwind (struct saved_frames *saved_frames)          struct rpc_clnt      *clnt = NULL;  	struct saved_frame   *trav = NULL;  	struct saved_frame   *tmp = NULL; -        struct tm            *frame_sent_tm = NULL; -        char                 timestr[256] = {0,}; +        char                  timestr[1024] = {0,};          struct iovec          iov = {0,};          list_splice_init (&saved_frames->lk_sf.list, &saved_frames->sf.list);  	list_for_each_entry_safe (trav, tmp, &saved_frames->sf.list, list) { -                frame_sent_tm = localtime (&trav->saved_at.tv_sec); -                strftime (timestr, sizeof(timestr), "%Y-%m-%d %H:%M:%S", -                          frame_sent_tm); +                gf_time_fmt (timestr, sizeof timestr, +                             trav->saved_at.tv_sec, gf_timefmt_FT);                  snprintf (timestr + strlen (timestr),                            sizeof(timestr) - strlen (timestr),                            ".%"GF_PRI_SUSECONDS, trav->saved_at.tv_usec); diff --git a/xlators/debug/io-stats/src/io-stats.c b/xlators/debug/io-stats/src/io-stats.c index 7466f82e930..c59370c7a26 100644 --- a/xlators/debug/io-stats/src/io-stats.c +++ b/xlators/debug/io-stats/src/io-stats.c @@ -568,19 +568,16 @@ ios_dump_throughput_stats (struct ios_stat_head *list_head, xlator_t *this,                              FILE* logfp, ios_stats_type_t type)  {          struct ios_stat_list *entry = NULL; -        struct timeval        time = {0, }; -        struct tm             *tm = NULL; +        struct timeval        time  = {0, };          char                  timestr[256] = {0, };          LOCK (&list_head->lock);          {                  list_for_each_entry (entry, &list_head->iosstats->list, list) { -                        time = entry->iosstat->thru_counters[type].time; -                        tm    = localtime (&time.tv_sec); -                        if (!tm) -                                continue; -                        strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                        snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                        gf_time_fmt (timestr, sizeof timestr, +                                     entry->iosstat->thru_counters[type].time.tv_sec, +                                     gf_timefmt_FT); +                        snprintf (timestr + strlen (timestr), sizeof timestr - strlen (timestr),                            ".%"GF_PRI_SUSECONDS, time.tv_usec);                          ios_log (this, logfp, "%s \t %-10.2f  \t  %s", @@ -600,7 +597,6 @@ io_stats_dump_global_to_logfp (xlator_t *this, struct ios_global_stats *stats,          int                   index = 0;          struct ios_stat_head *list_head = NULL;          struct ios_conf      *conf = NULL; -        struct tm            *tm = NULL;          char                  timestr[256] = {0, };          char                  str_header[128] = {0};          char                  str_read[128] = {0}; @@ -694,9 +690,10 @@ io_stats_dump_global_to_logfp (xlator_t *this, struct ios_global_stats *stats,          if (interval == -1) {                  LOCK (&conf->lock);                  { -                        tm = localtime (&conf->cumulative.max_openfd_time.tv_sec); -                        strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                        snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                        gf_time_fmt (timestr, sizeof timestr, +                                     conf->cumulative.max_openfd_time.tv_sec, +                                     gf_timefmt_FT); +                        snprintf (timestr + strlen (timestr), sizeof timestr - strlen (timestr),                                    ".%"GF_PRI_SUSECONDS,                                    conf->cumulative.max_openfd_time.tv_usec);                          ios_log (this, logfp, "Current open fd's: %"PRId64 @@ -1080,7 +1077,6 @@ io_stats_dump_stats_to_dict (xlator_t *this, dict_t *resp,          struct ios_stat_list    *entry = NULL;          int                      ret = -1;          ios_stats_thru_t         index = IOS_STATS_THRU_MAX; -        struct tm               *tm = NULL;          char                     timestr[256] = {0, };          conf = this->private; @@ -1097,9 +1093,10 @@ io_stats_dump_stats_to_dict (xlator_t *this, dict_t *resp,                                  ret = dict_set_uint64 (resp, "max-open",                                                         conf->cumulative.max_nr_opens); -                                tm = localtime (&conf->cumulative.max_openfd_time.tv_sec); -                                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                                snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                                gf_time_fmt (timestr, sizeof timestr, +                                             conf->cumulative.max_openfd_time.tv_sec, +                                             gf_timefmt_FT); +                                snprintf (timestr + strlen (timestr), sizeof timestr - strlen (timestr),                                            ".%"GF_PRI_SUSECONDS,                                            conf->cumulative.max_openfd_time.tv_usec); diff --git a/xlators/debug/trace/src/trace.c b/xlators/debug/trace/src/trace.c index d9c292c0104..a1136a2e5b5 100644 --- a/xlators/debug/trace/src/trace.c +++ b/xlators/debug/trace/src/trace.c @@ -46,30 +46,20 @@ int trace_log_level = GF_LOG_INFO;  static char *  trace_stat_to_str (struct iatt *buf)  { -        char    *statstr           = NULL; -        char     atime_buf[256]    = {0,}; -        char     mtime_buf[256]    = {0,}; -        char     ctime_buf[256]    = {0,}; -        int      asprint_ret_value = 0; -        uint64_t ia_time           = 0; +        char     *statstr           = NULL; +        char      atime_buf[64]     = {0,}; +        char      mtime_buf[64]     = {0,}; +        char      ctime_buf[64]     = {0,}; +        int       asprint_ret_value = 0;          if (!buf) {                  statstr = NULL;                  goto out;          } -        ia_time = buf->ia_atime; -        strftime (atime_buf, 256, "[%b %d %H:%M:%S]", -                  localtime ((time_t *)&ia_time)); - -        ia_time = buf->ia_mtime; -        strftime (mtime_buf, 256, "[%b %d %H:%M:%S]", -                  localtime ((time_t *)&ia_time)); - -        ia_time = buf->ia_ctime; -        strftime (ctime_buf, 256, "[%b %d %H:%M:%S]", -                  localtime ((time_t *)&ia_time)); - +        gf_time_fmt (atime_buf, sizeof atime_buf, buf->ia_atime, gf_timefmt_bdT); +        gf_time_fmt (mtime_buf, sizeof mtime_buf, buf->ia_mtime, gf_timefmt_bdT); +        gf_time_fmt (ctime_buf, sizeof ctime_buf, buf->ia_ctime, gf_timefmt_bdT);          asprint_ret_value = gf_asprintf (&statstr,                                           "gfid=%s ino=%"PRIu64", mode=%o, "                                           "nlink=%"GF_PRI_NLINK", uid=%u, " @@ -1665,9 +1655,8 @@ int  trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,                 struct iatt *stbuf, int32_t valid, dict_t *xdata)  { -        uint64_t ia_time          = 0; -        char     actime_str[256]  = {0,}; -        char     modtime_str[256] = {0,}; +        char      actime_str[64]   = {0,}; +        char      modtime_str[64]  = {0,};          if (trace_fop_names[GF_FOP_SETATTR].enabled) {                  if (valid & GF_SET_ATTR_MODE) { @@ -1685,13 +1674,10 @@ trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,                  }                  if (valid & (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME)) { -                        ia_time = stbuf->ia_atime; -                        strftime (actime_str, 256, "[%b %d %H:%M:%S]", -                                  localtime ((time_t *)&ia_time)); - -                        ia_time = stbuf->ia_mtime; -                        strftime (modtime_str, 256, "[%b %d %H:%M:%S]", -                                  localtime ((time_t *)&ia_time)); +                        gf_time_fmt (actime_str, sizeof actime_str, +                                     stbuf->ia_atime, gf_timefmt_bdT); +                        gf_time_fmt (modtime_str, sizeof modtime_str, +                                     stbuf->ia_mtime, gf_timefmt_bdT);                          gf_log (this->name, GF_LOG_INFO,                                  "%"PRId64": gfid=%s path=%s ia_atime=%s, ia_mtime=%s", @@ -1714,9 +1700,8 @@ int  trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,                  struct iatt *stbuf, int32_t valid, dict_t *xdata)  { -        uint64_t ia_time          = 0; -        char     actime_str[256]  = {0,}; -        char     modtime_str[256] = {0,}; +        char      actime_str[64]  = {0,}; +        char      modtime_str[64] = {0,};          if (trace_fop_names[GF_FOP_FSETATTR].enabled) {                  if (valid & GF_SET_ATTR_MODE) { @@ -1734,13 +1719,10 @@ trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,                  }                  if (valid & (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME)) { -                        ia_time = stbuf->ia_atime; -                        strftime (actime_str, 256, "[%b %d %H:%M:%S]", -                                  localtime ((time_t *)&ia_time)); - -                        ia_time = stbuf->ia_mtime; -                        strftime (modtime_str, 256, "[%b %d %H:%M:%S]", -                                  localtime ((time_t *)&ia_time)); +                        gf_time_fmt (actime_str, sizeof actime_str, +                                     stbuf->ia_atime, gf_timefmt_bdT); +                        gf_time_fmt (modtime_str, sizeof modtime_str, +                                     stbuf->ia_mtime, gf_timefmt_bdT);                          gf_log (this->name, GF_LOG_INFO,                                  "%"PRId64": gfid=%s fd=%p ia_atime=%s, ia_mtime=%s", diff --git a/xlators/features/locks/src/posix.c b/xlators/features/locks/src/posix.c index 8060349ee03..7baccaae0f1 100644 --- a/xlators/features/locks/src/posix.c +++ b/xlators/features/locks/src/posix.c @@ -1730,7 +1730,9 @@ pl_dump_lock (char *str, int size, struct gf_flock *flock,                gf_lkowner_t *owner, void *trans, time_t *granted_time,                time_t *blkd_time, gf_boolean_t active)  { -        char *type_str = NULL; +        char  *type_str    = NULL; +        char   granted[32] = {0,}; +        char   blocked[32] = {0,};          switch (flock->l_type) {          case F_RDLCK: @@ -1754,16 +1756,17 @@ pl_dump_lock (char *str, int size, struct gf_flock *flock,                                    (unsigned long long) flock->l_start,                                    (unsigned long long) flock->l_len,                                    (unsigned long long) flock->l_pid, -                                  lkowner_utoa (owner), -                                  trans, ctime (granted_time)); +                                  lkowner_utoa (owner), trans, +                                  ctime_r (granted_time, granted));                  } else {                          snprintf (str, size, RANGE_BLKD_GRNTD_FMT,                                    type_str, flock->l_whence,                                    (unsigned long long) flock->l_start,                                    (unsigned long long) flock->l_len,                                    (unsigned long long) flock->l_pid, -                                  lkowner_utoa (owner), -                                  trans, ctime (blkd_time), ctime (granted_time)); +                                  lkowner_utoa (owner), trans, +                                  ctime_r (blkd_time, blocked), +                                  ctime_r (granted_time, granted));                  }          }          else { @@ -1772,8 +1775,8 @@ pl_dump_lock (char *str, int size, struct gf_flock *flock,                            (unsigned long long) flock->l_start,                            (unsigned long long) flock->l_len,                            (unsigned long long) flock->l_pid, -                          lkowner_utoa (owner), -                          trans, ctime (blkd_time)); +                          lkowner_utoa (owner), trans, +                          ctime_r (blkd_time, blocked));          }  } @@ -1783,8 +1786,10 @@ __dump_entrylks (pl_inode_t *pl_inode)  {          pl_dom_list_t   *dom  = NULL;          pl_entry_lock_t *lock = NULL; -        int             count = 0; -        char            key[GF_DUMP_MAX_BUF_LEN]; +        char             blocked[32] = {0,}; +        char             granted[32] = {0,}; +        int              count = 0; +        char             key[GF_DUMP_MAX_BUF_LEN] = {0,};          char tmp[256]; @@ -1808,15 +1813,15 @@ __dump_entrylks (pl_inode_t *pl_inode)                                            "ENTRYLK_WRLCK", lock->basename,                                            (unsigned long long) lock->client_pid,                                            lkowner_utoa (&lock->owner), lock->trans, -                                          ctime (&lock->granted_time.tv_sec)); +                                          ctime_r (&lock->granted_time.tv_sec, granted));                          } else {                                  snprintf (tmp, 256, ENTRY_BLKD_GRNTD_FMT,                                            lock->type == ENTRYLK_RDLCK ? "ENTRYLK_RDLCK" :                                            "ENTRYLK_WRLCK", lock->basename,                                            (unsigned long long) lock->client_pid,                                            lkowner_utoa (&lock->owner), lock->trans, -                                          ctime (&lock->blkd_time.tv_sec), -                                          ctime (&lock->granted_time.tv_sec)); +                                          ctime_r (&lock->blkd_time.tv_sec, blocked), +                                          ctime_r (&lock->granted_time.tv_sec, granted));                          }                          gf_proc_dump_write(key, tmp); @@ -1834,7 +1839,7 @@ __dump_entrylks (pl_inode_t *pl_inode)                                    "ENTRYLK_WRLCK", lock->basename,                                    (unsigned long long) lock->client_pid,                                    lkowner_utoa (&lock->owner), lock->trans, -                                  ctime (&lock->blkd_time.tv_sec)); +                                  ctime_r (&lock->blkd_time.tv_sec, blocked));                          gf_proc_dump_write(key, tmp); diff --git a/xlators/features/marker/utils/src/gsyncd.c b/xlators/features/marker/utils/src/gsyncd.c index 9c598ce668e..7da2c983cff 100644 --- a/xlators/features/marker/utils/src/gsyncd.c +++ b/xlators/features/marker/utils/src/gsyncd.c @@ -61,6 +61,7 @@ static int  str2argv (char *str, char ***argv)  {          char *p         = NULL; +        char *savetok   = NULL;          int argc        = 0;          size_t argv_len = 32;          int ret         = 0; @@ -74,7 +75,7 @@ str2argv (char *str, char ***argv)          if (!*argv)                  goto error; -        while ((p = strtok (str, " "))) { +        while ((p = strtok_r (str, " ", &savetok))) {                  str = NULL;                  argc++; diff --git a/xlators/features/trash/src/trash.c b/xlators/features/trash/src/trash.c index 15d9a429f67..92ea19a55f3 100644 --- a/xlators/features/trash/src/trash.c +++ b/xlators/features/trash/src/trash.c @@ -504,9 +504,7 @@ trash_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc,          trash_elim_pattern_t  *trav  = NULL;          trash_private_t *priv = NULL;          trash_local_t   *local = NULL; -        struct tm       *tm = NULL; -        char             timestr[256] = {0,}; -        time_t           utime = 0; +        char             timestr[64] = {0,};          int32_t          match = 0;          priv = this->private; @@ -553,9 +551,8 @@ trash_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc,          {                  /* append timestamp to file name */                  /* TODO: can we make it optional? */ -                utime = time (NULL); -                tm    = localtime (&utime); -                strftime (timestr, 256, ".%Y-%m-%d-%H%M%S", tm); +                gf_time_ftm (timestr, sizeof timestr, time (NULL), +                             gf_timefmt_F_HMS);                  strcat (local->newpath, timestr);          } @@ -574,9 +571,7 @@ trash_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)          trash_elim_pattern_t  *trav  = NULL;          trash_private_t *priv = NULL;          trash_local_t   *local = NULL; -        struct tm       *tm = NULL; -        char             timestr[256] = {0,}; -        time_t           utime = 0; +        char             timestr[64] = {0,};          int32_t          match = 0;          priv = this->private; @@ -625,9 +620,8 @@ trash_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)          {                  /* append timestamp to file name */                  /* TODO: can we make it optional? */ -                utime = time (NULL); -                tm    = localtime (&utime); -                strftime (timestr, 256, ".%Y-%m-%d-%H%M%S", tm); +                gf_time_fmt (timestr, sizeof timestr, time (NULL), +                             gf_timefmt_F_HMS);                  strcat (local->newpath, timestr);          } @@ -943,10 +937,8 @@ trash_truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  {          trash_private_t     *priv  = NULL;          trash_local_t       *local = NULL; -        struct tm           *tm = NULL; -        char                 timestr[256] = {0,}; +        char                 timestr[64] = {0,};          char                 loc_newname[PATH_MAX] = {0,}; -        time_t               utime = 0;          int32_t              flags = 0;          priv = this->private; @@ -978,9 +970,8 @@ trash_truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          strcat (local->newpath, local->loc.path);          { -                utime = time (NULL); -                tm    = localtime (&utime); -                strftime (timestr, 256, ".%Y-%m-%d-%H%M%S", tm); +                gf_time_fmt (timestr, sizeof timestr, time (NULL), +                             gf_timefmt_F_HMS);                  strcat (local->newpath, timestr);          }          strcpy (loc_newname,local->loc.name); @@ -1346,11 +1337,9 @@ trash_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset)          trash_private_t       *priv = NULL;          trash_local_t         *local = NULL;          dentry_t              *dir_entry = NULL; -        struct tm             *tm = NULL;          char                  *pathbuf = NULL;          inode_t               *newinode = NULL; -        time_t                 utime = 0; -        char                   timestr[256]; +        char                   timestr[64];          int32_t                retval = 0;          int32_t                match = 0; @@ -1389,10 +1378,7 @@ trash_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset)                  return 0;          } -        utime = time (NULL); -        tm    = localtime (&utime); -        strftime (timestr, 256, ".%Y-%m-%d-%H%M%S", tm); - +        gf_time_fmt (timestr, sizeof timestr, time (NULL), gf_timefmt_F_HMS);          strcpy (local->newpath, priv->trash_dir);          strcat (local->newpath, pathbuf);          strcat (local->newpath, timestr); diff --git a/xlators/mgmt/glusterd/src/glusterd-mountbroker.c b/xlators/mgmt/glusterd/src/glusterd-mountbroker.c index 14cbb3d5de0..50ce1484e62 100644 --- a/xlators/mgmt/glusterd/src/glusterd-mountbroker.c +++ b/xlators/mgmt/glusterd/src/glusterd-mountbroker.c @@ -276,6 +276,7 @@ make_georep_mountspec (gf_mount_spec_t *mspec, const char *volnames,          char *vols            = NULL;          char *vol             = NULL;          char *p               = NULL; +        char *savetok         = NULL;          char *fa[3]           = {0,};          size_t siz            = 0;          int vc                = 0; @@ -296,7 +297,7 @@ make_georep_mountspec (gf_mount_spec_t *mspec, const char *volnames,                  goto out;          for (p = vols;;) { -                vol = strtok (p, ","); +                vol = strtok_r (p, ",", &savetok);                  if (!vol) {                          GF_ASSERT (vc == 0);                          break; diff --git a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c index 83122cdee6f..067196952ce 100644 --- a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c +++ b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c @@ -199,15 +199,16 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,          glusterd_brickinfo_t                    *src_brickinfo = NULL;          char                                    *host          = NULL;          char                                    *path          = NULL; -        char                                    msg[2048]      = {0}; +        char                                     msg[2048]     = {0};          char                                    *dup_dstbrick  = NULL;          glusterd_peerinfo_t                     *peerinfo = NULL;          glusterd_brickinfo_t                    *dst_brickinfo = NULL; -        gf_boolean_t                            is_run         = _gf_false; +        gf_boolean_t                             is_run        = _gf_false;          dict_t                                  *ctx           = NULL;          glusterd_conf_t                         *priv          = NULL; -        char                                    voldir[PATH_MAX] = {0}; -        char                                    pidfile[PATH_MAX] = {0}; +        char                                    *savetok       = NULL; +        char                                     voldir[PATH_MAX] = {0}; +        char                                     pidfile[PATH_MAX] = {0};          priv = THIS->private;          GF_ASSERT (priv); @@ -422,8 +423,8 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,                  gf_log ("", GF_LOG_ERROR, "Memory allocation failed");                  goto out;          } -        host = strtok (dup_dstbrick, ":"); -        path = strtok (NULL, ":"); +        host = strtok_r (dup_dstbrick, ":", &savetok); +        path = strtok_r (NULL, ":", &savetok);          if (!host || !path) {                  gf_log ("", GF_LOG_ERROR, diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c index f5dd024b876..ce3a633c3fe 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.c +++ b/xlators/mgmt/glusterd/src/glusterd-store.c @@ -1108,6 +1108,7 @@ glusterd_store_read_and_tokenize (FILE *file, char *str,                                    glusterd_store_op_errno_t *store_errno)  {          int32_t  ret = -1; +        char *savetok = NULL;          GF_ASSERT (file);          GF_ASSERT (str); @@ -1122,14 +1123,14 @@ glusterd_store_read_and_tokenize (FILE *file, char *str,                  goto out;          } -        *iter_key = strtok (str, "="); +        *iter_key = strtok_r (str, "=", &savetok);          if (*iter_key == NULL) {                  ret = -1;                  *store_errno = GD_STORE_KEY_NULL;                  goto out;          } -        *iter_val = strtok (NULL, "="); +        *iter_val = strtok_r (NULL, "=", &savetok);          if (*iter_key == NULL) {                  ret = -1;                  *store_errno = GD_STORE_VALUE_NULL; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index 7752d35ee86..9346e1d9c6f 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -4558,9 +4558,8 @@ glusterd_sm_tr_log_transition_add_to_dict (dict_t *dict,  {          int     ret = -1;          char    key[512] = {0}; -	char    timestr[256] = {0,}; +	char    timestr[64] = {0,};          char    *str = NULL; -	struct tm   tm = {0};          GF_ASSERT (dict);          GF_ASSERT (log); @@ -4589,9 +4588,8 @@ glusterd_sm_tr_log_transition_add_to_dict (dict_t *dict,          memset (key, 0, sizeof (key));          snprintf (key, sizeof (key), "log%d-time", count); -	localtime_r ((const time_t*)&log->transitions[i].time, &tm); -        memset (timestr, 0, sizeof (timestr)); -	strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", &tm); +        gf_time_fmt (timestr, sizeof timestr, log->transitions[i].time, +                     gf_timefmt_FT);          str = gf_strdup (timestr);          ret = dict_set_dynstr (dict, key, str);          if (ret) diff --git a/xlators/performance/io-cache/src/io-cache.c b/xlators/performance/io-cache/src/io-cache.c index ec45b61aed8..87b63429ace 100644 --- a/xlators/performance/io-cache/src/io-cache.c +++ b/xlators/performance/io-cache/src/io-cache.c @@ -1832,7 +1832,6 @@ __ioc_cache_dump (ioc_inode_t *ioc_inode, char *prefix)          ioc_table_t *table                    = NULL;          ioc_page_t  *page                     = NULL;          int          i                        = 0; -        struct tm   *tm                       = NULL;          char         key[GF_DUMP_MAX_BUF_LEN] = {0, };          char         timestr[256]             = {0, }; @@ -1843,9 +1842,9 @@ __ioc_cache_dump (ioc_inode_t *ioc_inode, char *prefix)          table = ioc_inode->table;          if (ioc_inode->cache.tv.tv_sec) { -                tm = localtime (&ioc_inode->cache.tv.tv_sec); -                strftime (timestr, 256, "%Y-%m-%d %H:%M:%S", tm); -                snprintf (timestr + strlen (timestr), 256 - strlen (timestr), +                gf_time_fmt (timestr, sizeof timestr, +                             ioc_inode->cache.tv.tv_sec, gf_timefmt_FT); +                snprintf (timestr + strlen (timestr), sizeof timestr - strlen (timestr),                            ".%"GF_PRI_SUSECONDS, ioc_inode->cache.tv.tv_usec);                  gf_proc_dump_write ("last-cache-validation-time", "%s", diff --git a/xlators/performance/quick-read/src/quick-read.c b/xlators/performance/quick-read/src/quick-read.c index 71fd2abfb54..66d6fb92ae9 100644 --- a/xlators/performance/quick-read/src/quick-read.c +++ b/xlators/performance/quick-read/src/quick-read.c @@ -3435,7 +3435,6 @@ qr_inodectx_dump (xlator_t *this, inode_t *inode)          int32_t     ret      = -1;          char        key_prefix[GF_DUMP_MAX_BUF_LEN] = {0, };          char        buf[256]                        = {0, }; -        struct tm  *tm                              = NULL;          ret = inode_ctx_get (inode, this, &value);          if (ret != 0) { @@ -3454,9 +3453,9 @@ qr_inodectx_dump (xlator_t *this, inode_t *inode)          gf_proc_dump_write ("entire-file-cached", "%s", qr_inode->xattr ? "yes" : "no");          if (qr_inode->tv.tv_sec) { -                tm = localtime (&qr_inode->tv.tv_sec); -                strftime (buf, 256, "%Y-%m-%d %H:%M:%S", tm); -                snprintf (buf + strlen (buf), 256 - strlen (buf), +                gf_time_fmt (buf, sizeof buf, qr_inode->tv.tv_sec, +                             gf_timefmt_FT); +                snprintf (buf + strlen (buf), sizeof buf - strlen (buf),                            ".%"GF_PRI_SUSECONDS, qr_inode->tv.tv_usec);                  gf_proc_dump_write ("last-cache-validation-time", "%s", buf);  | 
