diff options
author | Kevin Vigor <kvigor@fb.com> | 2017-01-05 12:21:20 -0800 |
---|---|---|
committer | Kevin Vigor <kvigor@fb.com> | 2017-01-05 12:21:20 -0800 |
commit | c27aa58e72cf528583c585691e65abdb765535e5 (patch) | |
tree | fae75e5b924ac4fb80a3d4ed42203638732fbb52 /libglusterfs | |
parent | 63403742f53ec59a6acbe26ff4c39bab1b0842ed (diff) | |
parent | cb8bc3396d16e777d9a2683886fefd43e747e8a3 (diff) |
Merge remote-tracking branch 'origin/release-3.8' into merge-3.8-again
Change-Id: I844adf2aef161a44d446f8cd9b7ebcb224ee618a
Signed-off-by: Kevin Vigor <kvigor@fb.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/compat.h | 4 | ||||
-rw-r--r-- | libglusterfs/src/ctx.c | 2 | ||||
-rw-r--r-- | libglusterfs/src/mem-pool.c | 6 | ||||
-rw-r--r-- | libglusterfs/src/stack.h | 8 | ||||
-rw-r--r-- | libglusterfs/src/syncop-utils.c | 15 |
5 files changed, 25 insertions, 10 deletions
diff --git a/libglusterfs/src/compat.h b/libglusterfs/src/compat.h index 54e7589b164..56736e52052 100644 --- a/libglusterfs/src/compat.h +++ b/libglusterfs/src/compat.h @@ -158,6 +158,10 @@ enum { #define s6_addr32 __u6_addr.__u6_addr32 #endif +#ifndef LOGIN_NAME_MAX +#define LOGIN_NAME_MAX 256 +#endif + /* Posix dictates NAME_MAX to be used */ # ifndef NAME_MAX # ifdef MAXNAMLEN diff --git a/libglusterfs/src/ctx.c b/libglusterfs/src/ctx.c index 2aa14654b9e..b009e6270a2 100644 --- a/libglusterfs/src/ctx.c +++ b/libglusterfs/src/ctx.c @@ -35,6 +35,8 @@ glusterfs_ctx_new () ctx->daemon_pipe[0] = -1; ctx->daemon_pipe[1] = -1; + ctx->log.loglevel = DEFAULT_LOG_LEVEL; + /* lock is never destroyed! */ ret = LOCK_INIT (&ctx->lock); if (ret) { diff --git a/libglusterfs/src/mem-pool.c b/libglusterfs/src/mem-pool.c index 40e80d5c33e..4d81ade8b60 100644 --- a/libglusterfs/src/mem-pool.c +++ b/libglusterfs/src/mem-pool.c @@ -422,7 +422,11 @@ mem_pool_new_fn (unsigned long sizeof_type, if (!ctx) goto out; - list_add (&mem_pool->global_list, &ctx->mempool_list); + LOCK (&ctx->lock); + { + list_add (&mem_pool->global_list, &ctx->mempool_list); + } + UNLOCK (&ctx->lock); out: return mem_pool; diff --git a/libglusterfs/src/stack.h b/libglusterfs/src/stack.h index 2899be9bf2f..393fdac8e73 100644 --- a/libglusterfs/src/stack.h +++ b/libglusterfs/src/stack.h @@ -275,17 +275,19 @@ STACK_RESET (call_stack_t *stack) #define STACK_WIND_TAIL(frame, obj, fn, params ...) \ do { \ xlator_t *old_THIS = NULL; \ + xlator_t *next_xl = obj; \ + typeof(fn) next_xl_fn = fn; \ \ - frame->this = obj; \ + frame->this = next_xl; \ frame->wind_to = #fn; \ old_THIS = THIS; \ - THIS = obj; \ + THIS = next_xl; \ gf_msg_trace ("stack-trace", 0, \ "stack-address: %p, " \ "winding from %s to %s", \ frame->root, old_THIS->name, \ THIS->name); \ - fn (frame, obj, params); \ + next_xl_fn (frame, next_xl, params); \ THIS = old_THIS; \ } while (0) diff --git a/libglusterfs/src/syncop-utils.c b/libglusterfs/src/syncop-utils.c index 8f25db237f5..de6033fc501 100644 --- a/libglusterfs/src/syncop-utils.c +++ b/libglusterfs/src/syncop-utils.c @@ -266,9 +266,10 @@ _dir_scan_job_fn (void *data) entry = NULL; pthread_mutex_lock (scan_data->mut); { - if (ret || list_empty (&scan_data->q->list)) { - (*scan_data->jobs_running)--; + if (ret) *scan_data->retval |= ret; + if (list_empty (&scan_data->q->list)) { + (*scan_data->jobs_running)--; pthread_cond_broadcast (scan_data->cond); } else { entry = list_first_entry (&scan_data->q->list, @@ -406,10 +407,13 @@ syncop_mt_dir_scan (call_frame_t *frame, xlator_t *subvol, loc_t *loc, int pid, ret = fn (subvol, entry, loc, data); gf_dirent_entry_free (entry); if (ret) - break; + goto out; continue; } + if (retval) /*Any jobs failed?*/ + goto out; + pthread_mutex_lock (&mut); { while (qlen == max_qlen) @@ -423,8 +427,7 @@ syncop_mt_dir_scan (call_frame_t *frame, xlator_t *subvol, loc_t *loc, int pid, } } pthread_mutex_unlock (&mut); - if (retval) /*Any jobs failed?*/ - break; + if (!entry) continue; @@ -433,7 +436,7 @@ syncop_mt_dir_scan (call_frame_t *frame, xlator_t *subvol, loc_t *loc, int pid, &retval, &mut, &cond, &jobs_running, &qlen, fn, data); if (ret) - break; + goto out; } } |