summaryrefslogtreecommitdiffstats
path: root/xlators/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster')
-rw-r--r--xlators/cluster/dht/src/dht-common.c305
-rw-r--r--xlators/cluster/dht/src/dht-diskusage.c13
-rw-r--r--xlators/cluster/dht/src/dht-helper.c5
-rw-r--r--xlators/cluster/dht/src/dht-layout.c23
-rw-r--r--xlators/cluster/dht/src/dht-linkfile.c28
-rw-r--r--xlators/cluster/dht/src/dht-rename.c66
-rw-r--r--xlators/cluster/dht/src/dht-selfheal.c35
-rw-r--r--xlators/cluster/dht/src/dht.c67
-rw-r--r--xlators/cluster/dht/src/nufa.c16
-rw-r--r--xlators/cluster/dht/src/switch.c16
10 files changed, 263 insertions, 311 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index 2f9768239..d1b5936b4 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -50,7 +50,11 @@ dht_lookup_selfheal_cbk (call_frame_t *frame, void *cookie,
{
dht_local_t *local = NULL;
dht_layout_t *layout = NULL;
- int ret = 0;
+ int ret = -1;
+
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
local = frame->local;
ret = op_ret;
@@ -78,7 +82,8 @@ dht_lookup_selfheal_cbk (call_frame_t *frame, void *cookie,
DHT_STACK_UNWIND (lookup, frame, ret, local->op_errno, local->inode,
&local->stbuf, local->xattr, &local->postparent);
- return 0;
+out:
+ return ret;
}
@@ -93,9 +98,15 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int this_call_cnt = 0;
call_frame_t *prev = NULL;
dht_layout_t *layout = NULL;
- int ret = 0;
+ int ret = -1;
int is_dir = 0;
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
+
conf = this->private;
local = frame->local;
prev = cookie;
@@ -199,8 +210,8 @@ selfheal:
FRAME_SU_DO (frame, dht_local_t);
ret = dht_selfheal_directory (frame, dht_lookup_selfheal_cbk,
&local->loc, layout);
-
- return 0;
+out:
+ return ret;
}
int
@@ -214,9 +225,15 @@ dht_lookup_root_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int this_call_cnt = 0;
call_frame_t *prev = NULL;
dht_layout_t *layout = NULL;
- int ret = 0;
+ int ret = -1;
int is_dir = 0;
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
+
conf = this->private;
local = frame->local;
prev = cookie;
@@ -274,7 +291,7 @@ unlock:
local->loc.path);
}
- dht_layout_set (this, local->inode, layout);
+ ret = dht_layout_set (this, local->inode, layout);
}
DHT_STACK_UNWIND (lookup, frame, local->op_ret, local->op_errno,
@@ -282,7 +299,8 @@ unlock:
&local->postparent);
}
- return 0;
+out:
+ return ret;
}
static int
@@ -293,6 +311,11 @@ dht_do_fresh_lookup_on_root (xlator_t *this, call_frame_t *frame)
int ret = -1;
int call_cnt = 0;
int i = 0;
+ int op_errno = EINVAL;
+
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, unwind);
local = frame->local;
conf = this->private;
@@ -316,8 +339,6 @@ dht_do_fresh_lookup_on_root (xlator_t *this, call_frame_t *frame)
conf->subvolume_cnt);
if (!local->layout) {
local->op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -333,7 +354,12 @@ err:
DHT_STACK_UNWIND (lookup, frame, -1, local->op_errno,
local->inode, &local->stbuf, local->xattr,
&local->postparent);
+
return 0;
+unwind:
+ DHT_STACK_UNWIND (lookup, frame, -1, op_errno, NULL, NULL, NULL, NULL);
+out:
+ return -1;
}
int
@@ -352,6 +378,11 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int is_linkfile = 0;
unsigned char root_gfid[16] = {0,};
+ GF_VALIDATE_OR_GOTO ("dht", frame, err);
+ GF_VALIDATE_OR_GOTO ("dht", this, err);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, err);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, err);
+
local = frame->local;
prev = cookie;
conf = this->private;
@@ -470,7 +501,8 @@ out:
&local->postparent);
}
- return 0;
+err:
+ return ret;
}
@@ -486,6 +518,12 @@ dht_lookup_linkfile_create_cbk (call_frame_t *frame, void *cookie,
dht_conf_t *conf = NULL;
int ret = -1;
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
+
local = frame->local;
cached_subvol = local->cached_subvol;
conf = this->private;
@@ -515,7 +553,8 @@ unwind:
DHT_STACK_UNWIND (lookup, frame, local->op_ret, local->op_errno,
local->inode, &local->stbuf, local->xattr,
&local->postparent);
- return 0;
+out:
+ return ret;
}
@@ -538,6 +577,12 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
xlator_t *cached_subvol = NULL;
int ret = -1;
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, out);
+
conf = this->private;
local = frame->local;
@@ -673,12 +718,13 @@ unlock:
loc->path, cached_subvol->name,
hashed_subvol->name);
- dht_linkfile_create (frame,
- dht_lookup_linkfile_create_cbk,
- cached_subvol, hashed_subvol, loc);
+ ret = dht_linkfile_create (frame,
+ dht_lookup_linkfile_create_cbk,
+ cached_subvol, hashed_subvol, loc);
}
- return 0;
+out:
+ return ret;
}
@@ -690,10 +736,14 @@ dht_lookup_everywhere (call_frame_t *frame, xlator_t *this, loc_t *loc)
int i = 0;
int call_cnt = 0;
+ GF_VALIDATE_OR_GOTO ("dht", frame, err);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, out);
+ GF_VALIDATE_OR_GOTO ("dht", loc, out);
+
conf = this->private;
local = frame->local;
- if (!conf)
- goto out;
call_cnt = conf->subvolume_cnt;
local->call_cnt = call_cnt;
@@ -711,7 +761,8 @@ dht_lookup_everywhere (call_frame_t *frame, xlator_t *this, loc_t *loc)
return 0;
out:
DHT_STACK_UNWIND (lookup, frame, -1, EINVAL, NULL, NULL, NULL, NULL);
- return 0;
+err:
+ return -1;
}
@@ -728,6 +779,12 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,
dht_conf_t *conf = NULL;
int ret = 0;
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, unwind);
+
prev = cookie;
subvol = prev->this;
conf = this->private;
@@ -735,21 +792,21 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,
loc = &local->loc;
if (op_ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"lookup of %s on %s (following linkfile) failed (%s)",
local->loc.path, subvol->name, strerror (op_errno));
goto err;
}
if (check_is_dir (inode, stbuf, xattr)) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"lookup of %s on %s (following linkfile) reached dir",
local->loc.path, subvol->name);
goto err;
}
if (check_is_linkfile (inode, stbuf, xattr)) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"lookup of %s on %s (following linkfile) reached link",
local->loc.path, subvol->name);
goto err;
@@ -765,15 +822,14 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,
ret = dht_layout_preset (this, prev->this, inode);
if (ret < 0) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"failed to set layout for subvolume %s",
prev->this->name);
op_ret = -1;
op_errno = EINVAL;
- goto out;
}
-out:
+unwind:
WIPE (postparent);
DHT_STACK_UNWIND (lookup, frame, op_ret, op_errno, inode, stbuf, xattr,
@@ -783,7 +839,7 @@ out:
err:
dht_lookup_everywhere (frame, this, loc);
-
+out:
return 0;
}
@@ -796,19 +852,20 @@ dht_lookup_directory (call_frame_t *frame, xlator_t *this, loc_t *loc)
dht_conf_t *conf = NULL;
dht_local_t *local = NULL;
+ GF_VALIDATE_OR_GOTO ("dht", frame, out);
+ GF_VALIDATE_OR_GOTO ("dht", this, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, unwind);
+ GF_VALIDATE_OR_GOTO ("dht", loc, unwind);
+
conf = this->private;
local = frame->local;
- if (!conf)
- goto unwind;
-
call_cnt = conf->subvolume_cnt;
local->call_cnt = call_cnt;
local->layout = dht_layout_new (this, conf->subvolume_cnt);
if (!local->layout) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto unwind;
}
@@ -821,6 +878,7 @@ dht_lookup_directory (call_frame_t *frame, xlator_t *this, loc_t *loc)
return 0;
unwind:
DHT_STACK_UNWIND (lookup, frame, -1, ENOMEM, NULL, NULL, NULL, NULL);
+out:
return 0;
}
@@ -843,9 +901,13 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
uint64_t tmp_layout = 0;
dht_layout_t *parent_layout = NULL;
+ GF_VALIDATE_OR_GOTO ("dht", frame, err);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
+ GF_VALIDATE_OR_GOTO ("dht", this->private, out);
+
conf = this->private;
- if (!conf)
- goto out;
prev = cookie;
local = frame->local;
@@ -858,6 +920,8 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
memcpy (local->gfid, stbuf->ia_gfid, 16);
if (ENTRY_MISSING (op_ret, op_errno)) {
+ gf_log (this->name, GF_LOG_TRACE, "Entry %s missing on subvol"
+ " %s", loc->path, prev->this->name);
if (conf->search_unhashed == GF_DHT_LOOKUP_UNHASHED_ON) {
local->op_errno = ENOENT;
dht_lookup_everywhere (frame, this, loc);
@@ -888,8 +952,12 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
return 0;
}
- if (op_ret == -1)
+ if (op_ret == -1) {
+ gf_log (this->name, GF_LOG_DEBUG, "Lookup of %s for subvolume"
+ " %s failed with error %s", loc->path, prev->this->name,
+ strerror (op_errno));
goto out;
+ }
is_linkfile = check_is_linkfile (inode, stbuf, xattr);
is_dir = check_is_dir (inode, stbuf, xattr);
@@ -904,7 +972,7 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
ret = dht_layout_preset (this, prev->this, inode);
if (ret < 0) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"could not set pre-set layout for subvolume %s",
prev->this->name);
op_ret = -1;
@@ -944,6 +1012,7 @@ out:
DHT_STACK_UNWIND (lookup, frame, op_ret, op_errno, inode, stbuf, xattr,
postparent);
+err:
return 0;
}
@@ -977,8 +1046,6 @@ dht_lookup (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
if (!dht_filter_loc_subvol_key (this, loc, &local->loc,
@@ -1066,8 +1133,6 @@ dht_lookup (call_frame_t *frame, xlator_t *this,
conf->subvolume_cnt);
if (!local->layout) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1103,6 +1168,10 @@ dht_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int this_call_cnt = 0;
call_frame_t *prev = NULL;
+ GF_VALIDATE_OR_GOTO ("dht", frame, err);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
local = frame->local;
prev = cookie;
@@ -1130,12 +1199,12 @@ dht_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
}
unlock:
UNLOCK (&frame->lock);
-
+out:
this_call_cnt = dht_frame_return (frame);
if (is_last_call (this_call_cnt))
DHT_STACK_UNWIND (truncate, frame, local->op_ret, local->op_errno,
&local->prebuf, &local->stbuf);
-
+err:
return 0;
}
@@ -1149,6 +1218,10 @@ dht_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int this_call_cnt = 0;
call_frame_t *prev = NULL;
+ GF_VALIDATE_OR_GOTO ("dht", frame, err);
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", frame->local, out);
+ GF_VALIDATE_OR_GOTO ("dht", cookie, out);
local = frame->local;
prev = cookie;
@@ -1171,12 +1244,12 @@ dht_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
}
unlock:
UNLOCK (&frame->lock);
-
+out:
this_call_cnt = dht_frame_return (frame);
if (is_last_call (this_call_cnt))
DHT_STACK_UNWIND (stat, frame, local->op_ret, local->op_errno,
&local->stbuf);
-
+err:
return 0;
}
@@ -1202,8 +1275,6 @@ dht_stat (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1254,8 +1325,6 @@ dht_fstat (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1313,8 +1382,6 @@ dht_truncate (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1359,8 +1426,6 @@ dht_ftruncate (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1580,8 +1645,6 @@ dht_access (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1650,8 +1713,6 @@ dht_readlink (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -1877,8 +1938,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -1889,23 +1949,20 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
local->key = gf_strdup (key);
if (!local->key) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
local->layout = layout;
@@ -1951,16 +2008,14 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
local->layout = layout;
@@ -2025,8 +2080,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -2034,8 +2088,7 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,
local->key = gf_strdup (key);
if (!local->key) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
}
@@ -2086,8 +2139,6 @@ dht_fsetxattr (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -2136,8 +2187,6 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -2231,8 +2280,6 @@ dht_removexattr (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -2324,8 +2371,7 @@ dht_open (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -2333,8 +2379,7 @@ dht_open (call_frame_t *frame, xlator_t *this,
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -2400,7 +2445,6 @@ dht_readv (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR, "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -2471,8 +2515,7 @@ dht_writev (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -2516,8 +2559,7 @@ dht_flush (call_frame_t *frame, xlator_t *this, fd_t *fd)
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -2561,8 +2603,7 @@ dht_fsync (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
local->call_cnt = 1;
@@ -2760,8 +2801,7 @@ dht_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd)
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -2769,8 +2809,7 @@ dht_opendir (call_frame_t *frame, xlator_t *this, loc_t *loc, fd_t *fd)
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -2833,8 +2872,7 @@ dht_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret,
entry = gf_dirent_for_name (orig_entry->d_name);
if (!entry) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto unwind;
}
@@ -3024,8 +3062,7 @@ dht_do_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,
local = dht_local_init (frame);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -3137,8 +3174,7 @@ dht_fsyncdir (call_frame_t *frame, xlator_t *this, fd_t *fd, int datasync)
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -3266,8 +3302,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -3283,8 +3318,7 @@ dht_mknod (call_frame_t *frame, xlator_t *this,
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -3347,8 +3381,7 @@ dht_symlink (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -3431,16 +3464,14 @@ dht_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
ret = loc_copy (&local->loc, loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -3569,24 +3600,21 @@ dht_link (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
ret = loc_copy (&local->loc, oldloc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
ret = loc_copy (&local->loc2, newloc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -3707,8 +3735,7 @@ dht_create (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -3727,8 +3754,7 @@ dht_create (call_frame_t *frame, xlator_t *this,
ret = loc_dup (loc, &local->loc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
subvol = dht_subvol_get_hashed (this, loc);
@@ -3960,8 +3986,7 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -3982,8 +4007,7 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,
local->mode = mode;
if (ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -3992,8 +4016,7 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,
local->layout = dht_layout_new (this, conf->subvolume_cnt);
if (!local->layout) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -4261,8 +4284,6 @@ dht_rmdir_is_subvol_empty (call_frame_t *frame, xlator_t *this,
lookup_frame = copy_frame (frame);
if (!lookup_frame) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of Memory");
/* out of memory, let the rmdir fail
(as non-empty, unfortunately) */
goto err;
@@ -4271,8 +4292,6 @@ dht_rmdir_is_subvol_empty (call_frame_t *frame, xlator_t *this,
lookup_local = GF_CALLOC (sizeof (*local), 1,
gf_dht_mt_dht_local_t);
if (!lookup_local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of Memory");
goto err;
}
@@ -4409,8 +4428,7 @@ dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)
local = dht_local_init (frame);
if (!local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -4420,8 +4438,7 @@ dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)
ret = loc_copy (&local->loc, loc);
if (ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -4430,8 +4447,7 @@ dht_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags)
local->fd = fd_create (local->loc.inode, frame->root->pid);
if (!local->fd) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
op_errno = ENOMEM;
goto err;
}
@@ -4488,8 +4504,7 @@ dht_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -4590,8 +4605,7 @@ dht_inodelk (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -4694,8 +4708,7 @@ dht_entrylk (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -4881,8 +4894,7 @@ dht_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
goto err;
}
@@ -4955,8 +4967,7 @@ dht_init_subvolumes (xlator_t *this, dht_conf_t *conf)
conf->subvolumes = GF_CALLOC (cnt, sizeof (xlator_t *),
gf_dht_mt_xlator_t);
if (!conf->subvolumes) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
return -1;
}
conf->subvolume_cnt = cnt;
@@ -4968,16 +4979,14 @@ dht_init_subvolumes (xlator_t *this, dht_conf_t *conf)
conf->subvolume_status = GF_CALLOC (cnt, sizeof (char),
gf_dht_mt_char);
if (!conf->subvolume_status) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
return -1;
}
conf->last_event = GF_CALLOC (cnt, sizeof (int),
gf_dht_mt_char);
if (!conf->last_event) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
+
return -1;
}
return 0;
diff --git a/xlators/cluster/dht/src/dht-diskusage.c b/xlators/cluster/dht/src/dht-diskusage.c
index e526d1aec..75953781e 100644
--- a/xlators/cluster/dht/src/dht-diskusage.c
+++ b/xlators/cluster/dht/src/dht-diskusage.c
@@ -47,8 +47,11 @@ dht_du_info_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
conf = this->private;
prev = cookie;
- if (op_ret == -1)
+ if (op_ret == -1) {
+ gf_log (this->name, GF_LOG_DEBUG,
+ "failed to get disk info from %s", prev->this->name);
goto out;
+ }
if (statvfs && statvfs->f_blocks) {
percent = (statvfs->f_bfree * 100) / statvfs->f_blocks;
@@ -92,15 +95,11 @@ dht_get_du_info_for_subvol (xlator_t *this, int subvol_idx)
statfs_frame = create_frame (this, pool);
if (!statfs_frame) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
statfs_local = dht_local_init (statfs_frame);
if (!statfs_local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -139,15 +138,11 @@ dht_get_du_info (call_frame_t *frame, xlator_t *this, loc_t *loc)
statfs_frame = copy_frame (frame);
if (!statfs_frame) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
statfs_local = dht_local_init (statfs_frame);
if (!statfs_local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
index 00c710f61..cd57b9ea0 100644
--- a/xlators/cluster/dht/src/dht-helper.c
+++ b/xlators/cluster/dht/src/dht-helper.c
@@ -57,7 +57,6 @@ dht_itransform (xlator_t *this, xlator_t *subvol, uint64_t x, uint64_t *y_p)
int max = 0;
uint64_t y = 0;
-
if (x == ((uint64_t) -1)) {
y = (uint64_t) -1;
goto out;
@@ -473,8 +472,6 @@ dht_build_child_loc (xlator_t *this, loc_t *child, loc_t *parent, char *name)
gf_asprintf ((char **)&child->path, "%s/%s", parent->path, name);
if (!child->path) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -486,8 +483,6 @@ dht_build_child_loc (xlator_t *this, loc_t *child, loc_t *parent, char *name)
child->inode = inode_new (parent->inode->table);
if (!child->inode) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
diff --git a/xlators/cluster/dht/src/dht-layout.c b/xlators/cluster/dht/src/dht-layout.c
index 23cec09d7..16767adb9 100644
--- a/xlators/cluster/dht/src/dht-layout.c
+++ b/xlators/cluster/dht/src/dht-layout.c
@@ -47,8 +47,6 @@ dht_layout_new (xlator_t *this, int cnt)
layout = GF_CALLOC (1, layout_size (cnt),
gf_dht_mt_dht_layout_t);
if (!layout) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto out;
}
@@ -175,7 +173,7 @@ dht_layout_search (xlator_t *this, dht_layout_t *layout, const char *name)
ret = dht_hash_compute (layout->type, name, &hash);
if (ret != 0) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"hash computation failed for type=%d name=%s",
layout->type, name);
goto out;
@@ -190,7 +188,7 @@ dht_layout_search (xlator_t *this, dht_layout_t *layout, const char *name)
}
if (!subvol) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"no subvolume for hash (value) = %u", hash);
}
@@ -236,8 +234,6 @@ dht_layouts_init (xlator_t *this, dht_conf_t *conf)
sizeof (dht_layout_t *),
gf_dht_mt_dht_layout_t);
if (!conf->file_layouts) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto out;
}
@@ -271,8 +267,6 @@ dht_disk_layout_extract (xlator_t *this, dht_layout_t *layout,
disk_layout = GF_CALLOC (5, sizeof (int),
gf_dht_mt_int32_t);
if (!disk_layout) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto out;
}
@@ -306,7 +300,7 @@ dht_disk_layout_merge (xlator_t *this, dht_layout_t *layout,
cnt = ntoh32 (disk_layout[0]);
if (cnt != 1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"disk layout has invalid count %d", cnt);
return -1;
}
@@ -392,7 +386,6 @@ dht_layout_entry_swap (dht_layout_t *layout, int i, int j)
xlator_t *xlator_swap = 0;
int err_swap = 0;
-
start_swap = layout->list[i].start;
stop_swap = layout->list[i].stop;
xlator_swap = layout->list[i].xlator;
@@ -562,7 +555,7 @@ dht_layout_normalize (xlator_t *this, loc_t *loc, dht_layout_t *layout)
ret = dht_layout_sort (layout);
if (ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_WARNING,
"sort failed?! how the ....");
goto out;
}
@@ -645,7 +638,7 @@ dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,
if (!xattr) {
if (err == 0) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"%s - xattr dictionary is NULL",
loc->path);
ret = -1;
@@ -658,7 +651,7 @@ dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,
if (dict_ret < 0) {
if (err == 0) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"%s - disk layout missing", loc->path);
ret = -1;
}
@@ -669,7 +662,7 @@ dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,
count = ntoh32 (disk_layout[0]);
if (count != 1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"%s - disk layout has invalid count %d",
loc->path, count);
ret = -1;
@@ -709,7 +702,7 @@ dht_layout_preset (xlator_t *this, xlator_t *subvol, inode_t *inode)
layout = dht_layout_for_subvol (this, subvol);
if (!layout) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"no pre-set layout for subvolume %s",
subvol ? subvol->name : "<nil>");
ret = -1;
diff --git a/xlators/cluster/dht/src/dht-linkfile.c b/xlators/cluster/dht/src/dht-linkfile.c
index 030444218..9dd487bc8 100644
--- a/xlators/cluster/dht/src/dht-linkfile.c
+++ b/xlators/cluster/dht/src/dht-linkfile.c
@@ -36,7 +36,6 @@ dht_linkfile_xattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
{
dht_local_t *local = NULL;
-
local = frame->local;
local->linkfile.linkfile_cbk (frame, cookie, this, op_ret, op_errno,
local->linkfile.inode,
@@ -61,13 +60,15 @@ dht_linkfile_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
local = frame->local;
prev = cookie;
- if (op_ret == -1)
+ if (op_ret == -1) {
+ gf_log (this->name, GF_LOG_WARNING,
+ "%s: failed to create link file (%s)",
+ local->linkfile.loc.path, strerror (op_errno));
goto err;
+ }
xattr = get_new_dict ();
if (!xattr) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -77,16 +78,15 @@ dht_linkfile_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
str_data = str_to_data (local->linkfile.srcvol->name);
if (!str_data) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
ret = dict_set (xattr, "trusted.glusterfs.dht.linkto", str_data);
if (ret < 0) {
- gf_log (this->name, GF_LOG_DEBUG,
- "failed to initialize linkfile data");
+ gf_log (this->name, GF_LOG_INFO,
+ "%s: failed to initialize linkfile data",
+ local->linkfile.loc.path);
}
str_data = NULL;
@@ -129,12 +129,13 @@ dht_linkfile_create (call_frame_t *frame, fop_mknod_cbk_t linkfile_cbk,
goto out;
ret = dict_set_static_bin (dict, "gfid-req", local->gfid, 16);
if (ret)
- gf_log ("dht-linkfile", GF_LOG_DEBUG, "gfid set failed");
+ gf_log ("dht-linkfile", GF_LOG_INFO,
+ "%s: gfid set failed", loc->path);
} else if (local->params) {
dict = dict_ref (local->params);
}
if (!dict)
- gf_log ("", GF_LOG_DEBUG,
+ gf_log (frame->this->name, GF_LOG_INFO,
"dict is NULL, need to make sure gfid's are same");
STACK_WIND (frame, dht_linkfile_create_cbk,
@@ -166,7 +167,7 @@ dht_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
subvol = prev->this;
if (op_ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"unlinking linkfile %s on %s failed (%s)",
local->loc.path, subvol->name, strerror (op_errno));
}
@@ -186,15 +187,11 @@ dht_linkfile_unlink (call_frame_t *frame, xlator_t *this,
unlink_frame = copy_frame (frame);
if (!unlink_frame) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
unlink_local = dht_local_init (unlink_frame);
if (!unlink_local) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -222,7 +219,6 @@ dht_linkfile_subvol (xlator_t *this, inode_t *inode, struct iatt *stbuf,
void *volname = NULL;
int i = 0, ret = 0;
-
conf = this->private;
if (!xattr)
diff --git a/xlators/cluster/dht/src/dht-rename.c b/xlators/cluster/dht/src/dht-rename.c
index 4366c80ae..f6ed8769d 100644
--- a/xlators/cluster/dht/src/dht-rename.c
+++ b/xlators/cluster/dht/src/dht-rename.c
@@ -41,37 +41,38 @@ dht_rename_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int this_call_cnt = 0;
call_frame_t *prev = NULL;
-
local = frame->local;
prev = cookie;
if (op_ret == -1) {
/* TODO: undo the damage */
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"rename %s -> %s on %s failed (%s)",
local->loc.path, local->loc2.path,
prev->this->name, strerror (op_errno));
local->op_ret = op_ret;
local->op_errno = op_errno;
- } else {
- /* TODO: construct proper stbuf for dir */
- /*
- * FIXME: is this the correct way to build stbuf and
- * parent bufs?
- */
- dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
- dht_iatt_merge (this, &local->preoldparent, preoldparent,
- prev->this);
- dht_iatt_merge (this, &local->postoldparent, postoldparent,
- prev->this);
- dht_iatt_merge (this, &local->preparent, prenewparent,
- prev->this);
- dht_iatt_merge (this, &local->postparent, postnewparent,
- prev->this);
+ goto unwind;
}
+ /* TODO: construct proper stbuf for dir */
+ /*
+ * FIXME: is this the correct way to build stbuf and
+ * parent bufs?
+ */
+ dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
+ dht_iatt_merge (this, &local->preoldparent, preoldparent,
+ prev->this);
+ dht_iatt_merge (this, &local->postoldparent, postoldparent,
+ prev->this);
+ dht_iatt_merge (this, &local->preparent, prenewparent,
+ prev->this);
+ dht_iatt_merge (this, &local->postparent, postnewparent,
+ prev->this);
+
+unwind:
this_call_cnt = dht_frame_return (frame);
if (is_last_call (this_call_cnt)) {
local->stbuf.ia_ino = local->loc.inode->ino;
@@ -172,7 +173,7 @@ dht_rename_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
prev = cookie;
if (op_ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"opendir on %s for %s failed (%s)",
prev->this->name, local->loc.path,
strerror (op_errno));
@@ -212,6 +213,9 @@ dht_rename_dir (call_frame_t *frame, xlator_t *this)
for (i = 0; i < conf->subvolume_cnt; i++) {
if (!conf->subvolume_status[i]) {
+ gf_log (this->name, GF_LOG_INFO,
+ "one of the subvolumes down (%s)",
+ conf->subvolumes[i]->name);
op_errno = ENOTCONN;
goto err;
}
@@ -219,8 +223,6 @@ dht_rename_dir (call_frame_t *frame, xlator_t *this)
local->fd = fd_create (local->loc.inode, frame->root->pid);
if (!local->fd) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -269,9 +271,9 @@ dht_rename_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
this_call_cnt = dht_frame_return (frame);
if (op_ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
- "unlink on %s failed (%s)",
- prev->this->name, strerror (op_errno));
+ gf_log (this->name, GF_LOG_WARNING,
+ "%s: unlink on %s failed (%s)",
+ local->loc.path, prev->this->name, strerror (op_errno));
}
WIPE (&local->preoldparent);
@@ -383,9 +385,9 @@ dht_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
dst_cached = local->dst_cached;
if (op_ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
- "rename on %s failed (%s)", prev->this->name,
- strerror (op_errno));
+ gf_log (this->name, GF_LOG_WARNING,
+ "%s: rename on %s failed (%s)", local->loc.path,
+ prev->this->name, strerror (op_errno));
local->op_ret = op_ret;
local->op_errno = op_errno;
goto cleanup;
@@ -634,7 +636,7 @@ dht_rename (call_frame_t *frame, xlator_t *this,
src_hashed = dht_subvol_get_hashed (this, oldloc);
if (!src_hashed) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"no subvolume in layout for path=%s",
oldloc->path);
op_errno = EINVAL;
@@ -643,7 +645,7 @@ dht_rename (call_frame_t *frame, xlator_t *this,
src_cached = dht_subvol_get_cached (this, oldloc->inode);
if (!src_cached) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"no cached subvolume for path=%s", oldloc->path);
op_errno = EINVAL;
goto err;
@@ -651,7 +653,7 @@ dht_rename (call_frame_t *frame, xlator_t *this,
dst_hashed = dht_subvol_get_hashed (this, newloc);
if (!dst_hashed) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"no subvolume in layout for path=%s",
newloc->path);
op_errno = EINVAL;
@@ -664,24 +666,18 @@ dht_rename (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
ret = loc_copy (&local->loc, oldloc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
ret = loc_copy (&local->loc2, newloc);
if (ret == -1) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
diff --git a/xlators/cluster/dht/src/dht-selfheal.c b/xlators/cluster/dht/src/dht-selfheal.c
index f10f9781a..ddd043dc8 100644
--- a/xlators/cluster/dht/src/dht-selfheal.c
+++ b/xlators/cluster/dht/src/dht-selfheal.c
@@ -33,7 +33,6 @@ dht_selfheal_dir_finish (call_frame_t *frame, xlator_t *this, int ret)
{
dht_local_t *local = NULL;
-
local = frame->local;
local->selfheal.dir_cbk (frame, NULL, frame->this, ret,
local->op_errno);
@@ -97,23 +96,23 @@ dht_selfheal_dir_xattr_persubvol (call_frame_t *frame, loc_t *loc,
xattr = get_new_dict ();
if (!xattr) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
ret = dht_disk_layout_extract (this, layout, i, &disk_layout);
if (ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
- "failed to extract disk layout");
+ gf_log (this->name, GF_LOG_WARNING,
+ "%s: (subvol %s) failed to extract disk layout",
+ loc->path, subvol->name);
goto err;
}
ret = dict_set_bin (xattr, "trusted.glusterfs.dht",
disk_layout, 4 * 4);
if (ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
- "failed to set xattr dictionary");
+ gf_log (this->name, GF_LOG_WARNING,
+ "%s: (subvol %s) failed to set xattr dictionary",
+ loc->path, subvol->name);
goto err;
}
disk_layout = NULL;
@@ -163,6 +162,7 @@ dht_selfheal_dir_xattr (call_frame_t *frame, loc_t *loc, dht_layout_t *layout)
* or the directory is itself non existant.
* !layout->list[i].stop would mean layout absent
*/
+
continue;
}
missing_xattr++;
@@ -239,7 +239,7 @@ dht_selfheal_dir_setattr (call_frame_t *frame, loc_t *loc, struct iatt *stbuf,
for (i = 0; i < layout->cnt; i++) {
if (layout->list[i].err == -1) {
gf_log (this->name, GF_LOG_TRACE,
- "setattr %s on subvol %s",
+ "setattr for %s on subvol %s",
loc->path, layout->list[i].xlator->name);
STACK_WIND (frame, dht_selfheal_dir_setattr_cbk,
@@ -280,9 +280,13 @@ dht_selfheal_dir_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
}
}
- if (op_ret)
+ if (op_ret) {
+ gf_log (this->name, ((op_errno == EEXIST) ? GF_LOG_DEBUG :
+ GF_LOG_WARNING),
+ "selfhealing directory %s failed: %s",
+ local->loc.path, strerror (op_errno));
goto out;
-
+ }
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
if (prev->this == local->hashed_subvol)
@@ -335,7 +339,7 @@ dht_selfheal_dir_mkdir (call_frame_t *frame, loc_t *loc,
ret = dict_set_static_bin (dict, "gfid-req", local->gfid, 16);
if (ret)
gf_log (this->name, GF_LOG_INFO,
- "failed to set gfid in dict");
+ "%s: failed to set gfid in dict", loc->path);
} else if (local->params) {
/* Send the dictionary from higher layers directly */
dict = dict_ref (local->params);
@@ -347,7 +351,7 @@ dht_selfheal_dir_mkdir (call_frame_t *frame, loc_t *loc,
for (i = 0; i < layout->cnt; i++) {
if (layout->list[i].err == ENOENT || force) {
- gf_log (this->name, GF_LOG_TRACE,
+ gf_log (this->name, GF_LOG_DEBUG,
"creating directory %s on subvol %s",
loc->path, layout->list[i].xlator->name);
@@ -561,14 +565,14 @@ dht_selfheal_directory (call_frame_t *frame, dht_selfheal_dir_cbk_t dir_cbk,
local->selfheal.layout = dht_layout_ref (this, layout);
if (down) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"%d subvolumes down -- not fixing", down);
ret = 0;
goto sorry_no_fix;
}
if (misc) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"%d subvolumes have unrecoverable errors", misc);
ret = 0;
goto sorry_no_fix;
@@ -578,7 +582,7 @@ dht_selfheal_directory (call_frame_t *frame, dht_selfheal_dir_cbk_t dir_cbk,
ret = dht_selfheal_dir_getafix (frame, loc, layout);
if (ret == -1) {
- gf_log (this->name, GF_LOG_DEBUG,
+ gf_log (this->name, GF_LOG_INFO,
"not able to form layout for the directory");
goto sorry_no_fix;
}
@@ -602,7 +606,6 @@ dht_selfheal_restore (call_frame_t *frame, dht_selfheal_dir_cbk_t dir_cbk,
int ret = 0;
dht_local_t *local = NULL;
-
local = frame->local;
local->selfheal.dir_cbk = dir_cbk;
diff --git a/xlators/cluster/dht/src/dht.c b/xlators/cluster/dht/src/dht.c
index fc500b61a..61c43a8d6 100644
--- a/xlators/cluster/dht/src/dht.c
+++ b/xlators/cluster/dht/src/dht.c
@@ -43,8 +43,8 @@ dht_layout_dump (dht_layout_t *layout, const char *prefix)
char key[GF_DUMP_MAX_BUF_LEN];
int i = 0;
- if (!layout)
- return;
+ GF_VALIDATE_OR_GOTO ("dht", layout, out);
+ GF_VALIDATE_OR_GOTO ("dht", prefix, out);
gf_proc_dump_build_key(key, prefix, "cnt");
gf_proc_dump_write(key, "%d", layout->cnt);
@@ -73,6 +73,9 @@ dht_layout_dump (dht_layout_t *layout, const char *prefix)
layout->list[i].xlator->name);
}
}
+
+out:
+ return;
}
@@ -83,10 +86,9 @@ dht_priv_dump (xlator_t *this)
char key[GF_DUMP_MAX_BUF_LEN];
int i = 0;
dht_conf_t *conf = NULL;
- int ret = 0;
+ int ret = -1;
- if (!this)
- return -1;
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
conf = this->private;
@@ -160,7 +162,8 @@ dht_priv_dump (xlator_t *this)
UNLOCK(&conf->subvolume_lock);
- return 0;
+out:
+ return ret;
}
int32_t
@@ -171,8 +174,8 @@ dht_inodectx_dump (xlator_t *this, inode_t *inode)
dht_layout_t *layout = NULL;
uint64_t tmp_layout = 0;
- if (!inode)
- return -1;
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", inode, out);
ret = inode_ctx_get (inode, this, &tmp_layout);
@@ -188,7 +191,8 @@ dht_inodectx_dump (xlator_t *this, inode_t *inode)
"%s.inode.%ld", this->name, inode->ino);
dht_layout_dump(layout, key_prefix);
- return 0;
+out:
+ return ret;
}
int
@@ -196,8 +200,11 @@ notify (xlator_t *this, int event, void *data, ...)
{
int ret = -1;
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+
ret = dht_notify (this, event, data);
+out:
return ret;
}
@@ -207,6 +214,8 @@ fini (xlator_t *this)
int i = 0;
dht_conf_t *conf = NULL;
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+
conf = this->private;
this->private = NULL;
if (conf) {
@@ -228,7 +237,7 @@ fini (xlator_t *this)
GF_FREE (conf);
}
-
+out:
return;
}
@@ -237,8 +246,7 @@ mem_acct_init (xlator_t *this)
{
int ret = -1;
- if (!this)
- return ret;
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
ret = xlator_mem_acct_init (this, gf_dht_mt_end + 1);
@@ -247,7 +255,7 @@ mem_acct_init (xlator_t *this)
"failed");
return ret;
}
-
+out:
return ret;
}
int
@@ -257,9 +265,8 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)
gf_boolean_t search_unhashed;
int ret = 0;
-
-
-
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", options, out);
if (dict_get_str (options, "lookup-unhashed", &temp_str) == 0) {
if (strcasecmp (temp_str, "auto")) {
@@ -267,12 +274,10 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)
gf_log(this->name, GF_LOG_DEBUG, "Validated"
" lookup-unahashed (%s)",
temp_str);
- }
- else {
+ } else {
gf_log(this->name, GF_LOG_ERROR, "Validation:"
" lookup-unahashed should be boolean,"
- " not (%s)",
- temp_str);
+ " not (%s)", temp_str);
*op_errstr = gf_strdup ("Error, lookup-"
"unhashed be boolean");
ret = -1;
@@ -282,10 +287,6 @@ validate_options (xlator_t *this, dict_t *options, char **op_errstr)
}
}
-
-
-
-
out:
return ret;
}
@@ -297,8 +298,10 @@ reconfigure (xlator_t *this, dict_t *options)
char *temp_str = NULL;
gf_boolean_t search_unhashed;
uint32_t temp_free_disk = 0;
- int ret = 0;
+ int ret = -1;
+ GF_VALIDATE_OR_GOTO ("dht", this, out);
+ GF_VALIDATE_OR_GOTO ("dht", options, out);
conf = this->private;
if (!conf)
@@ -312,8 +315,7 @@ reconfigure (xlator_t *this, dict_t *options)
" lookup-unahashed reconfigured (%s)",
temp_str);
conf->search_unhashed = search_unhashed;
- }
- else {
+ } else {
gf_log(this->name, GF_LOG_ERROR, "Reconfigure:"
" lookup-unahashed should be boolean,"
" not (%s), defaulting to (%d)",
@@ -322,9 +324,7 @@ reconfigure (xlator_t *this, dict_t *options)
ret = -1;
goto out;
}
-
- }
- else {
+ } else {
gf_log(this->name, GF_LOG_DEBUG, "Reconfigure:"
" lookup-unahashed reconfigured auto ");
conf->search_unhashed = GF_DHT_LOOKUP_UNHASHED_AUTO;
@@ -349,7 +349,7 @@ reconfigure (xlator_t *this, dict_t *options)
" min-free-disk reconfigured to %s",
temp_str);
}
-
+ ret = 0;
out:
return ret;
}
@@ -363,6 +363,7 @@ init (xlator_t *this)
int i = 0;
uint32_t temp_free_disk = 0;
+ GF_VALIDATE_OR_GOTO ("dht", this, err);
if (!this->children) {
gf_log (this->name, GF_LOG_CRITICAL,
@@ -377,8 +378,6 @@ init (xlator_t *this)
conf = GF_CALLOC (1, sizeof (*conf), gf_dht_mt_dht_conf_t);
if (!conf) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -437,8 +436,6 @@ init (xlator_t *this)
conf->du_stats = GF_CALLOC (conf->subvolume_cnt, sizeof (dht_du_t),
gf_dht_mt_dht_du_t);
if (!conf->du_stats) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
diff --git a/xlators/cluster/dht/src/nufa.c b/xlators/cluster/dht/src/nufa.c
index 6f81269d6..6f14362f4 100644
--- a/xlators/cluster/dht/src/nufa.c
+++ b/xlators/cluster/dht/src/nufa.c
@@ -98,8 +98,6 @@ nufa_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
if (!local->layout) {
op_ret = -1;
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_DEBUG,
- "memory allocation failed :(");
goto err;
}
@@ -178,8 +176,6 @@ nufa_lookup (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -336,8 +332,6 @@ nufa_create (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -361,8 +355,6 @@ nufa_create (call_frame_t *frame, xlator_t *this,
/* create a link file instead of actual file */
ret = loc_copy (&local->loc, loc);
if (ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -447,8 +439,6 @@ nufa_mknod (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -473,8 +463,6 @@ nufa_mknod (call_frame_t *frame, xlator_t *this,
/* Create linkfile first */
ret = loc_copy (&local->loc, loc);
if (ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -575,8 +563,6 @@ init (xlator_t *this)
conf = GF_CALLOC (1, sizeof (*conf),
gf_dht_mt_dht_conf_t);
if (!conf) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -663,8 +649,6 @@ init (xlator_t *this)
conf->du_stats = GF_CALLOC (conf->subvolume_cnt, sizeof (dht_du_t),
gf_dht_mt_dht_du_t);
if (!conf->du_stats) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
diff --git a/xlators/cluster/dht/src/switch.c b/xlators/cluster/dht/src/switch.c
index e48e369a4..20356e24e 100644
--- a/xlators/cluster/dht/src/switch.c
+++ b/xlators/cluster/dht/src/switch.c
@@ -252,8 +252,6 @@ switch_lookup (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -351,8 +349,6 @@ switch_lookup (call_frame_t *frame, xlator_t *this,
conf->subvolume_cnt);
if (!local->layout) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -439,8 +435,6 @@ switch_create (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -463,8 +457,6 @@ switch_create (call_frame_t *frame, xlator_t *this,
/* create a link file instead of actual file */
ret = loc_copy (&local->loc, loc);
if (ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -545,8 +537,6 @@ switch_mknod (call_frame_t *frame, xlator_t *this,
local = dht_local_init (frame);
if (!local) {
op_errno = ENOMEM;
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -570,8 +560,6 @@ switch_mknod (call_frame_t *frame, xlator_t *this,
/* Create linkfile first */
ret = loc_copy (&local->loc, loc);
if (ret == -1) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
op_errno = ENOMEM;
goto err;
}
@@ -898,8 +886,6 @@ init (xlator_t *this)
conf = GF_CALLOC (1, sizeof (*conf), gf_switch_mt_dht_conf_t);
if (!conf) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}
@@ -967,8 +953,6 @@ init (xlator_t *this)
conf->du_stats = GF_CALLOC (conf->subvolume_cnt, sizeof (dht_du_t),
gf_switch_mt_dht_du_t);
if (!conf->du_stats) {
- gf_log (this->name, GF_LOG_ERROR,
- "Out of memory");
goto err;
}