diff options
Diffstat (limited to 'xlators/cluster/dht/src')
| -rw-r--r-- | xlators/cluster/dht/src/Makefile.am | 2 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 729 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-common.h | 1 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-diskusage.c | 38 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-hashfn.c | 6 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 25 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-inode-read.c | 76 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-inode-write.c | 76 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-layout.c | 74 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-linkfile.c | 63 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-messages.h | 443 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-rebalance.c | 321 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-rename.c | 184 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-selfheal.c | 151 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/dht-shared.c | 53 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/nufa.c | 50 | ||||
| -rw-r--r-- | xlators/cluster/dht/src/switch.c | 82 | 
17 files changed, 1621 insertions, 753 deletions
diff --git a/xlators/cluster/dht/src/Makefile.am b/xlators/cluster/dht/src/Makefile.am index 3fc29bf8154..a180f9263ff 100644 --- a/xlators/cluster/dht/src/Makefile.am +++ b/xlators/cluster/dht/src/Makefile.am @@ -20,7 +20,7 @@ nufa_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la  switch_la_LDFLAGS = -module -avoid-version  switch_la_LIBADD = $(top_builddir)/libglusterfs/src/libglusterfs.la -noinst_HEADERS = dht-common.h dht-mem-types.h \ +noinst_HEADERS = dht-common.h dht-mem-types.h dht-messages.h \  	$(top_builddir)/xlators/lib/src/libxlator.h  AM_CPPFLAGS = $(GF_CPPFLAGS) -I$(top_srcdir)/libglusterfs/src \ diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 419815cce4d..5c4fe2d4ca4 100644 --- a/xlators/cluster/dht/src/dht-common.c +++ b/xlators/cluster/dht/src/dht-common.c @@ -43,8 +43,9 @@ dht_aggregate (dict_t *this, char *key, data_t *value, void *data)                          size = GF_CALLOC (1, sizeof (int64_t),                                            gf_common_mt_char);                          if (size == NULL) { -                                gf_log ("dht", GF_LOG_WARNING, -                                        "memory allocation failed"); +                                gf_msg ("dht", GF_LOG_WARNING, 0, +                                        DHT_MSG_NO_MEMORY, +                                        "Memory allocation failed");                                  return -1;                          }                          ret = dict_set_bin (dst, key, size, sizeof (int64_t)); @@ -75,13 +76,17 @@ dht_aggregate (dict_t *this, char *key, data_t *value, void *data)                          if (!ret && dict_data && value) {                                  ret = is_data_equal (dict_data, value);                                  if (!ret) -                                        gf_log ("dht", GF_LOG_DEBUG, -                                                "xattr mismatch for %s", key); +                                        gf_msg_debug ("dht", 0, +                                                      "xattr mismatch for %s", +                                                      key);                          }                  }                  ret = dict_set (dst, key, value);                  if (ret) -                        gf_log ("dht", GF_LOG_WARNING, "xattr dict set failed"); +                        gf_msg ("dht", GF_LOG_WARNING, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "Failed to set dictionary value: key = %s", +                                key);          }          return 0; @@ -171,7 +176,8 @@ dht_discover_complete (xlator_t *this, call_frame_t *discover_frame)                  return 0;          if (local->file_count && local->dir_count) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_FILE_TYPE_MISMATCH,                          "path %s exists as a file on one subvolume "                          "and directory on another. "                          "Please fix it manually", @@ -184,7 +190,8 @@ dht_discover_complete (xlator_t *this, call_frame_t *discover_frame)                  ret = dht_layout_preset (this, local->cached_subvol,                                           local->inode);                  if (ret < 0) { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_LAYOUT_SET_FAILED,                                  "failed to set layout for subvolume %s",                                  local->cached_subvol ? local->cached_subvol->name : "<nil>");                          op_errno = EINVAL; @@ -196,11 +203,11 @@ dht_discover_complete (xlator_t *this, call_frame_t *discover_frame)                          /* either the layout is incorrect or the directory is                           * not found even in one subvolume.                           */ -                        gf_log (this->name, GF_LOG_DEBUG, -                                "normalizing failed on %s " -                                "(overlaps/holes present: %s, " -                                "ENOENT errors: %d)", local->loc.path, -                                (ret < 0) ? "yes" : "no", (ret > 0) ? ret : 0); +                        gf_msg_debug (this->name, 0, +                                      "normalizing failed on %s " +                                      "(overlaps/holes present: %s, " +                                      "ENOENT errors: %d)", local->loc.path, +                                      (ret < 0) ? "yes" : "no", (ret > 0) ? ret : 0);                          if ((ret > 0) && (ret == conf->subvolume_cnt)) {                                  op_errno = ESTALE;                                  goto out; @@ -238,6 +245,8 @@ dht_discover_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          int           is_linkfile             = 0;          int           attempt_unwind          = 0;          dht_conf_t   *conf                    = 0; +        char         gfid_local[GF_UUID_BUF_SIZE]  = {0}; +        char         gfid_node[GF_UUID_BUF_SIZE]  = {0};          GF_VALIDATE_OR_GOTO ("dht", frame, out);          GF_VALIDATE_OR_GOTO ("dht", this, out); @@ -251,11 +260,19 @@ dht_discover_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          layout = local->layout; +          /* Check if the gfid is different for file from other node */          if (!op_ret && uuid_compare (local->gfid, stbuf->ia_gfid)) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: gfid different on %s", -                        local->loc.path, prev->this->name); + +                uuid_unparse(stbuf->ia_gfid, gfid_node); +                uuid_unparse(local->gfid, gfid_local); + +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_GFID_MISMATCH, +                        "%s: gfid different on %s, gfid local = %s" +                        "gfid other = %s", +                        local->loc.path, prev->this->name, +                        gfid_local, gfid_node);          } @@ -269,15 +286,17 @@ dht_discover_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  ret = dht_layout_merge (this, layout, prev->this,                                          op_ret, op_errno, xattr);                  if (ret) -                        gf_log (this->name, GF_LOG_WARNING, -                                "%s: failed to merge layouts", local->loc.path); +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_LAYOUT_MERGE_FAILED, +                                "%s: failed to merge layouts for subvol %s", +                                local->loc.path, prev->this->name);                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "lookup of %s on %s returned error (%s)", -                                local->loc.path, prev->this->name, -                                strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "lookup of %s on %s returned error (%s)", +                                      local->loc.path, prev->this->name, +                                      strerror (op_errno));                          goto unlock;                  } @@ -347,14 +366,16 @@ dht_discover (call_frame_t *frame, xlator_t *this, loc_t *loc)          ret = dict_set_uint32 (local->xattr_req, conf->xattr_name, 4 * 4);          if (ret) -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: failed to set '%s' key", +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "%s: Failed to set dictionary value:key = %s",                          loc->path, conf->xattr_name);          ret = dict_set_uint32 (local->xattr_req, conf->link_xattr_name, 256);          if (ret) -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: failed to set '%s' key", +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "%s: Failed to set dictionary value:key = %s",                          loc->path, conf->link_xattr_name);          call_cnt        = conf->subvolume_cnt; @@ -408,6 +429,8 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_layout_t *layout                  = NULL;          int           ret                     = -1;          int           is_dir                  = 0; +        char         gfid_local[GF_UUID_BUF_SIZE]  = {0}; +        char         gfid_node[GF_UUID_BUF_SIZE]  = {0};          GF_VALIDATE_OR_GOTO ("dht", frame, out);          GF_VALIDATE_OR_GOTO ("dht", this, out); @@ -423,11 +446,19 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if (!op_ret && uuid_is_null (local->gfid))                  memcpy (local->gfid, stbuf->ia_gfid, 16); +          /* Check if the gfid is different for file from other node */          if (!op_ret && uuid_compare (local->gfid, stbuf->ia_gfid)) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: gfid different on %s", -                        local->loc.path, prev->this->name); + +                uuid_unparse(stbuf->ia_gfid, gfid_node); +                uuid_unparse(local->gfid, gfid_local); + +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_GFID_MISMATCH, +                        "%s: gfid different on %s." +                        " gfid local = %s, gfid subvol = %s", +                        local->loc.path, prev->this->name, +                        gfid_local, gfid_node);          }          LOCK (&frame->lock); @@ -442,20 +473,20 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "lookup of %s on %s returned error (%s)", -                                local->loc.path, prev->this->name, -                                strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "lookup of %s on %s returned error (%s)", +                                      local->loc.path, prev->this->name, +                                      strerror (op_errno));                          goto unlock;                  }                  is_dir = check_is_dir (inode, stbuf, xattr);                  if (!is_dir) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "lookup of %s on %s returned non dir 0%o", -                                local->loc.path, prev->this->name, -                                stbuf->ia_type); +                        gf_msg_debug (this->name, 0, +                                      "lookup of %s on %s returned non dir 0%o", +                                      local->loc.path, prev->this->name, +                                      stbuf->ia_type);                          local->need_selfheal = 1;                          goto unlock;                  } @@ -491,9 +522,9 @@ unlock:                          ret = dht_layout_normalize (this, &local->loc, layout);                          if (ret != 0) { -                                gf_log (this->name, GF_LOG_DEBUG, -                                        "fixing assignment on %s", -                                        local->loc.path); +                                gf_msg_debug (this->name, 0, +                                              "fixing assignment on %s", +                                              local->loc.path);                                  goto selfheal;                          } @@ -538,6 +569,7 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          int           is_linkfile = 0;          call_frame_t *copy          = NULL;          dht_local_t  *copy_local    = NULL; +        char gfid[GF_UUID_BUF_SIZE] = {0};          GF_VALIDATE_OR_GOTO ("dht", frame, err);          GF_VALIDATE_OR_GOTO ("dht", this, err); @@ -550,6 +582,8 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if (!conf)                  goto out; +        uuid_unparse (local->loc.gfid, gfid); +          LOCK (&frame->lock);          {                  if (op_ret == -1) { @@ -559,9 +593,10 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                              && (op_errno != ENOENT)                              && (op_errno != ESTALE)) {  				gf_log (this->name, GF_LOG_INFO, -					"subvolume %s for %s returned -1 (%s)", +					"Revalidate: subvolume %s for %s " +                                        "(gfid = %s) returned -1 (%s)",  					prev->this->name, local->loc.path, -                                        strerror (op_errno)); +                                        gfid, strerror (op_errno));  			}                          if (op_errno == ESTALE) {                                  /* propagate the ESTALE to parent. @@ -582,10 +617,12 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  }                  if (stbuf->ia_type != local->inode->ia_type) { -                        gf_log (this->name, GF_LOG_INFO, -                                "mismatching filetypes 0%o v/s 0%o for %s", +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_FILE_TYPE_MISMATCH, +                                "mismatching filetypes 0%o v/s 0%o for %s," +                                " gfid = %s",                                  (stbuf->ia_type), (local->inode->ia_type), -                                local->loc.path); +                                local->loc.path, gfid);                          local->op_ret = -1;                          local->op_errno = EINVAL; @@ -601,8 +638,8 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (is_linkfile) {                          gf_log (this->name, GF_LOG_INFO, -                                "linkfile found in revalidate for %s", -                                local->loc.path); +                                "Revalidate: linkfile found %s, (gfid = %s)", +                                local->loc.path, gfid);                          local->return_estale = 1;                          goto unlock; @@ -630,9 +667,10 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                                         prev->this, &local->loc,                                                         xattr);                          if (ret != 0) { -                                gf_log (this->name, GF_LOG_INFO, -                                        "mismatching layouts for %s", -                                        local->loc.path); +                                gf_msg (this->name, GF_LOG_INFO, 0, +                                        DHT_MSG_LAYOUT_MISMATCH, +                                        "Mismatching layouts for %s, gfid = %s", +                                        local->loc.path, gfid);                                  local->layout_mismatch = 1; @@ -739,6 +777,7 @@ dht_lookup_linkfile_create_cbk (call_frame_t *frame, void *cookie,          xlator_t     *cached_subvol = NULL;          dht_conf_t   *conf = NULL;          int           ret = -1; +        char          gfid[GF_UUID_BUF_SIZE] = {0};          GF_VALIDATE_OR_GOTO ("dht", frame, out);          GF_VALIDATE_OR_GOTO ("dht", this, out); @@ -750,11 +789,15 @@ dht_lookup_linkfile_create_cbk (call_frame_t *frame, void *cookie,          cached_subvol = local->cached_subvol;          conf = this->private; +        uuid_unparse(local->loc.gfid, gfid); +          ret = dht_layout_preset (this, local->cached_subvol, local->loc.inode);          if (ret < 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "failed to set layout for subvolume %s", -                        cached_subvol ? cached_subvol->name : "<nil>"); +                gf_msg_debug (this->name, 0, +                              "Failed to set layout for subvolume %s, " +                              "(gfid = %s)", +                              cached_subvol ? cached_subvol->name : "<nil>", +                              gfid);                  local->op_ret = -1;                  local->op_errno = EINVAL;                  goto unwind; @@ -792,17 +835,21 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)          xlator_t     *hashed_subvol = NULL;          xlator_t     *cached_subvol = NULL;          dht_layout_t *layout = NULL; +        char gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          hashed_subvol = local->hashed_subvol;          cached_subvol = local->cached_subvol; +        uuid_unparse (local->loc.gfid, gfid); +          if (local->file_count && local->dir_count) { -                gf_log (this->name, GF_LOG_ERROR, -                        "path %s exists as a file on one subvolume " -                        "and directory on another. " +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_FILE_TYPE_MISMATCH, +                        "path %s (gfid = %s)exists as a file on one " +                        "subvolume and directory on another. "                          "Please fix it manually", -                        local->loc.path); +                        local->loc.path, gfid);                  DHT_STACK_UNWIND (lookup, frame, -1, EIO, NULL, NULL, NULL,                                    NULL);                  return 0; @@ -831,19 +878,21 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)                  layout = dht_layout_for_subvol (this, cached_subvol);                  if (!layout) {                          gf_log (this->name, GF_LOG_INFO, -                                "%s: no pre-set layout for subvolume %s", +                                "%s: no pre-set layout for subvolume %s," +                                " gfid = %s",                                  local->loc.path, (cached_subvol ?                                                    cached_subvol->name : -                                                  "<nil>")); +                                                  "<nil>"), gfid);                  }                  ret = dht_layout_set (this, local->inode, layout);                  if (ret < 0) {                          gf_log (this->name, GF_LOG_INFO, -                                "%s: failed to set layout for subvol %s", +                                "%s: failed to set layout for subvol %s, " +                                "gfid = %s",                                  local->loc.path, (cached_subvol ?                                                    cached_subvol->name : -                                                  "<nil>")); +                                                  "<nil>"), gfid);                  }                  if (local->loc.parent) { @@ -860,10 +909,11 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)          }          if (!hashed_subvol) { -                gf_log (this->name, GF_LOG_INFO, +                gf_msg (this->name, GF_LOG_INFO, 0, +                        DHT_MSG_HASHED_SUBVOL_GET_FAILED,                          "cannot create linkfile file for %s on %s: " -                        "hashed subvolume cannot be found.", -                        local->loc.path, cached_subvol->name); +                        "hashed subvolume cannot be found, gfid = %s.", +                        local->loc.path, cached_subvol->name, gfid);                  local->op_ret = 0;                  local->op_errno = 0; @@ -872,9 +922,10 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)                                           local->inode);                  if (ret < 0) {                          gf_log (this->name, GF_LOG_INFO, -                                "failed to set layout for subvol %s", +                                "Failed to set layout for subvol %s" +                                ", gfid = %s",                                  cached_subvol ? cached_subvol->name : -                                "<nil>"); +                                "<nil>", gfid);                          local->op_ret = -1;                          local->op_errno = EINVAL;                  } @@ -892,10 +943,10 @@ dht_lookup_everywhere_done (call_frame_t *frame, xlator_t *this)                  return 0;          } -        gf_log (this->name, GF_LOG_DEBUG, -                "linking file %s existing on %s to %s (hash)", -                local->loc.path, cached_subvol->name, -                hashed_subvol->name); +        gf_msg_debug (this->name, 0, +                      "Linking file %s on %s to %s (hash)(gfid = %s)", +                      local->loc.path, cached_subvol->name, +                      hashed_subvol->name, gfid);          ret = dht_linkfile_create (frame,                                     dht_lookup_linkfile_create_cbk, this, @@ -939,6 +990,7 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          int           ret           = -1;          int32_t       fd_count      = 0;          dht_conf_t   *conf          = NULL; +        char         gfid[GF_UUID_BUF_SIZE] = {0};          GF_VALIDATE_OR_GOTO ("dht", frame, out);          GF_VALIDATE_OR_GOTO ("dht", this, out); @@ -964,10 +1016,15 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (uuid_is_null (local->gfid))                          uuid_copy (local->gfid, buf->ia_gfid); +                uuid_unparse(local->gfid, gfid); +                  if (uuid_compare (local->gfid, buf->ia_gfid)) { -                        gf_log (this->name, GF_LOG_WARNING, -                                "%s: gfid differs on subvolume %s", -                                loc->path, prev->this->name); +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_GFID_MISMATCH, +                                "%s: gfid differs on subvolume %s," +                                " gfid local = %s, gfid node = %s", +                                loc->path, prev->this->name, gfid, +                                uuid_utoa(buf->ia_gfid));                  }                  is_linkfile = check_is_linkfile (inode, buf, xattr, @@ -977,10 +1034,10 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (is_linkfile) {                          link_subvol = dht_linkfile_subvol (this, inode, buf,                                                             xattr); -                        gf_log (this->name, GF_LOG_DEBUG, -                                "found on %s linkfile %s (-> %s)", -                                subvol->name, loc->path, -                                link_subvol ? link_subvol->name : "''"); +                        gf_msg_debug (this->name, 0, +                                      "found on %s linkfile %s (-> %s)", +                                      subvol->name, loc->path, +                                      link_subvol ? link_subvol->name : "''");                          goto unlock;                  } @@ -990,9 +1047,9 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (is_dir) {                          local->dir_count++; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "found on %s directory %s", -                                subvol->name, loc->path); +                        gf_msg_debug (this->name, 0, +                                      "found on %s directory %s", +                                      subvol->name, loc->path);                  } else {                          local->file_count++; @@ -1002,18 +1059,19 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                                  subvol);                                  local->xattr = dict_ref (xattr);                                  local->cached_subvol = subvol; -                                gf_log (this->name, GF_LOG_DEBUG, -                                        "found on %s file %s", -                                        subvol->name, loc->path); +                                gf_msg_debug (this->name, 0, +                                              "found on %s file %s", +                                              subvol->name, loc->path);                                  dht_iatt_merge (this, &local->postparent,                                                  postparent, subvol);                          } else {                                  /* This is where we need 'rename' both entries logic */ -                                gf_log (this->name, GF_LOG_WARNING, +                                gf_msg (this->name, GF_LOG_WARNING, 0, +                                        DHT_MSG_FILE_ON_MULT_SUBVOL,                                          "multiple subvolumes (%s and %s) have "                                          "file %s (preferably rename the file " -                                        "in the backend, and do a fresh lookup)", +                                        "in the backend,and do a fresh lookup)",                                          local->cached_subvol->name,                                          subvol->name, local->loc.path);                          } @@ -1096,6 +1154,7 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,          loc_t        *loc           = NULL;          dht_conf_t   *conf          = NULL;          int           ret           = 0; +        char          gfid[GF_UUID_BUF_SIZE]     = {0};          GF_VALIDATE_OR_GOTO ("dht", frame, out);          GF_VALIDATE_OR_GOTO ("dht", this, unwind); @@ -1109,10 +1168,13 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,          local  = frame->local;          loc    = &local->loc; +        uuid_unparse(loc->gfid, gfid); +          if (op_ret == -1) {                  gf_log (this->name, GF_LOG_INFO, -                        "lookup of %s on %s (following linkfile) failed (%s)", -                        local->loc.path, subvol->name, strerror (op_errno)); +                        "Lookup of %s on %s (following linkfile) failed (%s)" +                        ",gfid = %s", local->loc.path, subvol->name,  +                        strerror (op_errno), gfid);                  /* If cached subvol returned ENOTCONN, do not do                  lookup_everywhere. We need to make sure linkfile does not get @@ -1127,22 +1189,25 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,          if (check_is_dir (inode, stbuf, xattr)) {                  gf_log (this->name, GF_LOG_INFO, -                        "lookup of %s on %s (following linkfile) reached dir", -                        local->loc.path, subvol->name); +                        "Lookup of %s on %s (following linkfile) reached dir," +                        " gfid = %s", local->loc.path, subvol->name, gfid);                  goto err;          }          if (check_is_linkfile (inode, stbuf, xattr, conf->link_xattr_name)) {                  gf_log (this->name, GF_LOG_INFO, -                        "lookup of %s on %s (following linkfile) reached link", -                        local->loc.path, subvol->name); +                        "lookup of %s on %s (following linkfile) reached link," +                        "gfid = %s", local->loc.path, subvol->name, gfid);                  goto err;          }          if (uuid_compare (local->gfid, stbuf->ia_gfid)) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: gfid different on data file on %s", -                        local->loc.path, subvol->name); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_GFID_MISMATCH, +                        "%s: gfid different on data file on %s," +                        " gfid local = %s, gfid node = %s ", +                        local->loc.path, subvol->name, gfid, +                        uuid_utoa(stbuf->ia_gfid));                  goto err;          } @@ -1154,8 +1219,8 @@ 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_INFO, -                        "failed to set layout for subvolume %s", -                        prev->this->name); +                        "Failed to set layout for subvolume %s," +                        "gfid = %s", prev->this->name, gfid);                  op_ret   = -1;                  op_errno = EINVAL;          } @@ -1214,8 +1279,10 @@ dht_lookup_directory (call_frame_t *frame, xlator_t *this, loc_t *loc)                  ret = dict_set_static_bin (local->xattr_req, "gfid-req",                                             local->gfid, 16);                  if (ret) -                        gf_log (this->name, GF_LOG_WARNING, -                                "%s: failed to set gfid", local->loc.path); +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "%s: Failed to set dictionary value:" +                                " key = gfid-req", local->loc.path);          }          for (i = 0; i < call_cnt; i++) { @@ -1268,8 +1335,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); +                gf_msg_trace (this->name, 0, "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); @@ -1303,9 +1370,9 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          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)); +                gf_msg_debug (this->name, 0, "Lookup of %s for subvolume" +                              " %s failed with error %s", loc->path, +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -1329,9 +1396,9 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          subvol = dht_linkfile_subvol (this, inode, stbuf, xattr);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "linkfile not having link subvolume. path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "linkfile not having link subvolume. path=%s", +                              loc->path);                  dht_lookup_everywhere (frame, this, loc);                  return 0;          } @@ -1380,16 +1447,18 @@ dht_check_and_set_acl_xattr_req (inode_t *inode, dict_t *xattr_req)          if (!dict_get (xattr_req, POSIX_ACL_ACCESS_XATTR)) {                  ret = dict_set_int8 (xattr_req, POSIX_ACL_ACCESS_XATTR, 0);                  if (ret) -                        gf_log (THIS->name, GF_LOG_WARNING, -                                "failed to set key %s", +                        gf_msg (THIS->name, GF_LOG_WARNING, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "Failed to set dictionary value:key = %s",                                  POSIX_ACL_ACCESS_XATTR);          }          if (!dict_get (xattr_req, POSIX_ACL_DEFAULT_XATTR)) {                  ret = dict_set_int8 (xattr_req, POSIX_ACL_DEFAULT_XATTR, 0);                  if (ret) -                        gf_log (THIS->name, GF_LOG_WARNING, -                                "failed to set key %s", +                        gf_msg (THIS->name, GF_LOG_WARNING, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "Failed to set dictionary value:key = %s",                                  POSIX_ACL_DEFAULT_XATTR);          } @@ -1438,9 +1507,9 @@ dht_lookup (call_frame_t *frame, xlator_t *this,                  /* check if loc_dup() is successful */                  if (ret == -1) {                          op_errno = errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "copying location failed for path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "copying location failed for path=%s", +                                      loc->path);                          goto err;                  }          } @@ -1465,17 +1534,17 @@ dht_lookup (call_frame_t *frame, xlator_t *this,          if (is_revalidate (loc)) {                  layout = local->layout;                  if (!layout) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "revalidate without cache. path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "Revalidate lookup without cache." +                                      " path=%s", loc->path);                          op_errno = EINVAL;                          goto err;                  }                  if (layout->gen && (layout->gen < conf->gen)) { -                        gf_log (this->name, GF_LOG_TRACE, -                                "incomplete layout failure for path=%s", -                                loc->path); +                        gf_msg_trace (this->name, 0, +                                      "incomplete layout failure for path=%s", +                                      loc->path);                          dht_layout_unref (this, local->layout);                          local->layout = NULL; @@ -1538,10 +1607,10 @@ dht_lookup (call_frame_t *frame, xlator_t *this,                  dht_check_and_set_acl_xattr_req (loc->inode, local->xattr_req);                  if (!hashed_subvol) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "no subvolume in layout for path=%s, " -                                "checking on all the subvols to see if " -                                "it is a directory", loc->path); +                        gf_msg_debug (this->name, 0, +                                      "no subvolume in layout for path=%s, " +                                      "checking on all the subvols to see if " +                                      "it is a directory", loc->path);                          call_cnt        = conf->subvolume_cnt;                          local->call_cnt = call_cnt; @@ -1592,9 +1661,9 @@ dht_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (op_ret == -1) {                          local->op_ret   = -1;                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "Unlink: subvolume %s returned -1 (%s)", +                                       prev->this->name, strerror (op_errno));                          goto unlock;                  } @@ -1638,9 +1707,11 @@ dht_unlink_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if ((op_ret == -1) && !((op_errno == ENOENT) ||                                          (op_errno == ENOTCONN))) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "Unlink link: subvolume %s" +                                      " returned -1 (%s)", +                                      prev->this->name,  +                                      strerror (op_errno));                          goto unlock;                  } @@ -1654,9 +1725,9 @@ unlock:          cached_subvol = dht_subvol_get_cached (this, local->loc.inode);          if (!cached_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", -                        local->loc.path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s", +                              local->loc.path);                  local->op_errno = EINVAL;                  goto err;          } @@ -1688,9 +1759,10 @@ dht_err_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          {                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "subvolume %s returned -1 (%s)", +                                      prev->this->name,  +                                      strerror (op_errno));                          goto unlock;                  } @@ -1935,7 +2007,8 @@ dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if (op_ret < 0) {                  local->op_ret = -1;                  local->op_errno = op_errno; -                gf_log (this->name, GF_LOG_ERROR, "Subvolume %s returned -1 " +                gf_log (this->name, GF_LOG_ERROR,  +                        "vgetxattr: Subvolume %s returned -1 "                          "(%s)", prev->this->name, strerror (op_errno));                  goto unwind;          } @@ -1943,8 +2016,9 @@ dht_vgetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          ret = dht_vgetxattr_alloc_and_fill (local, xattr, this,                                              op_errno);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, -                        "alloc or fill failure"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_NO_MEMORY, +                        "Allocation or fill failure");                  goto unwind;          } @@ -1980,8 +2054,8 @@ dht_linkinfo_getxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (!ret) {                          ret = dict_set_str (xattr, GF_XATTR_LINKINFO_KEY, value);                          if (!ret) -                                gf_log (this->name, GF_LOG_TRACE, -                                        "failed to set linkinfo"); +                                gf_msg_trace (this->name, 0, +                                              "failed to set linkinfo");                  }          } @@ -2138,8 +2212,9 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_ERROR, -                        "layout is NULL"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_LAYOUT_NULL, +                        "Layout is NULL");                  op_errno = ENOENT;                  goto err;          } @@ -2199,16 +2274,20 @@ dht_getxattr (call_frame_t *frame, xlator_t *this,          if (key && (strcmp (key, GF_XATTR_LINKINFO_KEY) == 0)) {                  hashed_subvol = dht_subvol_get_hashed (this, loc);                  if (!hashed_subvol) { -                        gf_log (this->name, GF_LOG_ERROR, "Failed to get" -                                "hashed subvol for %s", loc->path); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_HASHED_SUBVOL_GET_FAILED, +                                "Failed to get hashed subvol for %s",  +                                loc->path);                          op_errno = EINVAL;                          goto err;                  }                  cached_subvol = dht_subvol_get_cached (this, loc->inode);                  if (!cached_subvol) { -                        gf_log (this->name, GF_LOG_ERROR, "Failed to get" -                                "cached subvol for %s", loc->path); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_CACHED_SUBVOL_GET_FAILED, +                                "Failed to get cached subvol for %s",  +                                loc->path);                          op_errno = EINVAL;                          goto err;                  } @@ -2337,8 +2416,9 @@ dht_fgetxattr (call_frame_t *frame, xlator_t *this,          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_ERROR, -                        "layout is NULL"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_LAYOUT_NULL, +                        "Layout is NULL");                  op_errno = ENOENT;                  goto err;          } @@ -2403,8 +2483,8 @@ dht_fsetxattr (call_frame_t *frame, xlator_t *this,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -2510,16 +2590,17 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              loc->path);                  op_errno = EINVAL;                  goto err;          }          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no layout for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -2545,8 +2626,10 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,                  local->rebalance.target_node = dht_subvol_get_hashed (this, loc);                  if (!local->rebalance.target_node) { -                        gf_log (this->name, GF_LOG_ERROR, "Failed to get " -                                "hashed subvol for %s", loc->path); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_HASHED_SUBVOL_GET_FAILED, +                                "Failed to get hashed subvol for %s",  +                                loc->path);                          op_errno = EINVAL;                          goto err;                  } @@ -2564,8 +2647,9 @@ dht_setxattr (call_frame_t *frame, xlator_t *this,                          if (!ret)                                  return 0; -                        gf_log (this->name, GF_LOG_ERROR, -                                "%s: failed to create a new synctask", +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_REBALANCE_START_FAILED, +                                "%s: failed to create a new rebalance synctask",                                  loc->path);                  }                  op_errno = EINVAL; @@ -2665,9 +2749,10 @@ dht_removexattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          {                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "subvolume %s returned -1 (%s)", +                                      prev->this->name,  +                                      strerror (op_errno));                          goto unlock;                  } @@ -2696,7 +2781,6 @@ dht_removexattr (call_frame_t *frame, xlator_t *this,          dht_layout_t *layout = NULL;          int           call_cnt = 0;          dht_conf_t   *conf = NULL; -          int i;          VALIDATE_OR_GOTO (this, err); @@ -2718,16 +2802,17 @@ dht_removexattr (call_frame_t *frame, xlator_t *this,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              loc->path);                  op_errno = EINVAL;                  goto err;          }          layout = local->layout;          if (!local->layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no layout for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -2781,17 +2866,18 @@ dht_fremovexattr (call_frame_t *frame, xlator_t *this,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for inode=%s", -                        uuid_utoa (fd->inode->gfid)); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for inode=%s", +                              uuid_utoa (fd->inode->gfid));                  op_errno = EINVAL;                  goto err;          }          layout = local->layout;          if (!local->layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for inode=%s", uuid_utoa (fd->inode->gfid)); +                gf_msg_debug (this->name, 0, +                              "no layout for inode=%s",  +                              uuid_utoa (fd->inode->gfid));                  op_errno = EINVAL;                  goto err;          } @@ -2831,9 +2917,9 @@ dht_fd_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          {                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "subvolume %s returned -1 (%s)", +                                      prev->this->name, strerror (op_errno));                          goto unlock;                  } @@ -2984,8 +3070,9 @@ dht_statfs (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)          subvol = dht_subvol_get_cached (this, loc->inode);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -3155,7 +3242,8 @@ list:                          ret = dht_layout_preset (this, prev->this,                                                   orig_entry->inode);                          if (ret) -                                gf_log (this->name, GF_LOG_WARNING, +                                gf_msg (this->name, GF_LOG_WARNING, 0, +                                        DHT_MSG_LAYOUT_SET_FAILED,                                          "failed to link the layout in inode");                          entry->inode = inode_ref (orig_entry->inode);                  } else if (orig_entry->inode) { @@ -3197,8 +3285,11 @@ done:                                  ret = dict_set_int32 (local->xattr,                                                        GF_READDIR_SKIP_DIRS, 1);                                  if (ret) -                                        gf_log (this->name, GF_LOG_ERROR, -					         "dict set failed"); +                                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                                DHT_MSG_DICT_SET_FAILED, +					        "Failed to set dictionary value" +                                                ":key = %s", +                                                GF_READDIR_SKIP_DIRS );  		        } else {                                   dict_del (local->xattr,                                             GF_READDIR_SKIP_DIRS); @@ -3261,8 +3352,9 @@ dht_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  if (!subvol || (subvol == prev->this)) {                          entry = gf_dirent_for_name (orig_entry->d_name);                          if (!entry) { -                                gf_log (this->name, GF_LOG_ERROR, -                                        "memory allocation failed :("); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_NO_MEMORY, +                                        "Memory allocation failed ");                                  goto unwind;                          } @@ -3363,17 +3455,24 @@ dht_do_readdir (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,                          ret = dict_set_uint32 (local->xattr,                                                 conf->link_xattr_name, 256);                          if (ret) -                                gf_log (this->name, GF_LOG_WARNING, -                                        "failed to set '%s' key", +                                gf_msg (this->name, GF_LOG_WARNING, 0, +                                        DHT_MSG_DICT_SET_FAILED, +                                        "Failed to set dictionary value" +                                        " : key = %s",                                          conf->link_xattr_name); +  			if (conf->readdir_optimize == _gf_true) {                                  if (xvol != local->first_up_subvol) {  				        ret = dict_set_int32 (local->xattr,  			                               GF_READDIR_SKIP_DIRS, 1);  				        if (ret) -					        gf_log (this->name, -                                                        GF_LOG_ERROR, -						        "Dict set failed"); +					        gf_msg (this->name, +                                                        GF_LOG_ERROR, 0, +                                                        DHT_MSG_DICT_SET_FAILED, +                                                        "Failed to set " +                                                        "dictionary value: " +                                                        "key = %s", +						        GF_READDIR_SKIP_DIRS);                                  } else {                                          dict_del (local->xattr,                                                    GF_READDIR_SKIP_DIRS); @@ -3539,9 +3638,9 @@ dht_newfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          ret = dht_layout_preset (this, prev, inode);          if (ret < 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "could not set pre-set layout for subvolume %s", -                        prev? prev->name: NULL); +                gf_msg_debug (this->name, 0, +                              "could not set pre-set layout for subvolume %s", +                              prev? prev->name: NULL);                  op_ret   = -1;                  op_errno = EINVAL;                  goto out; @@ -3619,16 +3718,17 @@ dht_mknod (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          }          if (!dht_is_subvol_filled (this, subvol)) { -                gf_log (this->name, GF_LOG_TRACE, -                        "creating %s on %s", loc->path, subvol->name); +                gf_msg_trace (this->name, 0, +                              "creating %s on %s", loc->path, +                              subvol->name);                  STACK_WIND_COOKIE (frame, dht_newfile_cbk, (void *)subvol,                                     subvol, subvol->fops->mknod, loc, mode, @@ -3650,8 +3750,9 @@ dht_mknod (call_frame_t *frame, xlator_t *this,                                               dht_mknod_linkfile_create_cbk,                                               this, avail_subvol, subvol, loc);                  } else { -                        gf_log (this->name, GF_LOG_TRACE, -                                "creating %s on %s", loc->path, subvol->name); +                        gf_msg_trace (this->name, 0, +                                      "creating %s on %s", loc->path,  +                                      subvol->name);                          STACK_WIND_COOKIE (frame, dht_newfile_cbk,                                             (void *)subvol, subvol, @@ -3691,15 +3792,15 @@ dht_symlink (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          } -        gf_log (this->name, GF_LOG_TRACE, -                "creating %s on %s", loc->path, subvol->name); +        gf_msg_trace (this->name, 0, +                      "creating %s on %s", loc->path, subvol->name);          STACK_WIND_COOKIE (frame, dht_newfile_cbk, (void *)subvol, subvol,                             subvol->fops->symlink, linkname, loc, umask, @@ -3751,15 +3852,15 @@ dht_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc, int xflag,          /* Dont fail unlink if hashed_subvol is NULL which can be the result           * of layout anomaly */          if (!hashed_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);          }          cached_subvol = local->cached_subvol;          if (!cached_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -3803,9 +3904,9 @@ dht_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          layout = dht_layout_for_subvol (this, prev->this);          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no pre-set layout for subvolume %s", -                        prev->this->name); +                gf_msg_debug (this->name, 0, +                              "no pre-set layout for subvolume %s", +                              prev->this->name);                  op_ret   = -1;                  op_errno = EINVAL;                  goto out; @@ -3884,17 +3985,18 @@ dht_link (call_frame_t *frame, xlator_t *this,          cached_subvol = local->cached_subvol;          if (!cached_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", oldloc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              oldloc->path);                  op_errno = ENOENT;                  goto err;          }          hashed_subvol = dht_subvol_get_hashed (this, newloc);          if (!hashed_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        newloc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              newloc->path);                  op_errno = ENOENT;                  goto err;          } @@ -3957,9 +4059,9 @@ dht_create_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, -                        "could not set preset layout for subvol %s", -                        prev->this->name); +                gf_msg_debug (this->name, 0, +                              "could not set preset layout for subvol %s", +                              prev->this->name);                  op_ret   = -1;                  op_errno = EINVAL;                  goto out; @@ -4040,16 +4142,17 @@ dht_create (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          }          if (!dht_is_subvol_filled (this, subvol)) { -                gf_log (this->name, GF_LOG_TRACE, -                        "creating %s on %s", loc->path, subvol->name); +                gf_msg_trace (this->name, 0, +                              "creating %s on %s", loc->path,  +                               subvol->name);                  STACK_WIND (frame, dht_create_cbk,                              subvol, subvol->fops->create,                              loc, flags, mode, umask, fd, params); @@ -4065,15 +4168,15 @@ dht_create (call_frame_t *frame, xlator_t *this,                  local->umask = umask;                  local->cached_subvol = avail_subvol;                  local->hashed_subvol = subvol; -                gf_log (this->name, GF_LOG_TRACE, -                        "creating %s on %s (link at %s)", loc->path, -                        avail_subvol->name, subvol->name); +                gf_msg_trace (this->name, 0, +                              "creating %s on %s (link at %s)", loc->path, +                              avail_subvol->name, subvol->name);                  dht_linkfile_create (frame, dht_create_linkfile_create_cbk,                                       this, avail_subvol, subvol, loc);                  goto done;          } -        gf_log (this->name, GF_LOG_TRACE, -                "creating %s on %s", loc->path, subvol->name); +        gf_msg_trace (this->name, 0, +                      "creating %s on %s", loc->path, subvol->name);          STACK_WIND (frame, dht_create_cbk,                      subvol, subvol->fops->create,                      loc, flags, mode, umask, fd, params); @@ -4155,8 +4258,10 @@ dht_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                                                  op_ret, op_errno, NULL);                  }                  if (ret) -                        gf_log (this->name, GF_LOG_WARNING, -                                "%s: failed to merge layouts", local->loc.path); +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_LAYOUT_MERGE_FAILED, +                                "%s: failed to merge layouts for subvol %s", +                                local->loc.path, prev->this->name);                  if (op_ret == -1) {                          local->op_errno = op_errno; @@ -4215,8 +4320,10 @@ dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie,          /* TODO: we may have to return from the function             if layout merge fails. For now, lets just log an error */          if (ret) -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: failed to merge layouts", local->loc.path); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_LAYOUT_MERGE_FAILED, +                        "%s: failed to merge layouts for subvol %s", +                        local->loc.path, prev->this->name);          if (op_ret == -1) {                  local->op_errno = op_errno; @@ -4281,9 +4388,9 @@ dht_mkdir (call_frame_t *frame, xlator_t *this,          hashed_subvol = dht_subvol_get_hashed (this, loc);          if (hashed_subvol == NULL) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "hashed subvol not found for %s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "hashed subvol not found for %s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          } @@ -4339,10 +4446,13 @@ dht_rmdir_hashed_subvol_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_local_t  *local = NULL;          int           this_call_cnt = 0;          call_frame_t *prev = NULL; +        char gfid[GF_UUID_BUF_SIZE] ={0};          local = frame->local;          prev  = cookie; +        uuid_unparse(local->loc.gfid, gfid); +          LOCK (&frame->lock);          {                  if (op_ret == -1) { @@ -4353,10 +4463,11 @@ dht_rmdir_hashed_subvol_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          } -                        gf_log (this->name, GF_LOG_DEBUG, -                                "rmdir on %s for %s failed (%s)", -                                prev->this->name, local->loc.path, -                                strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "rmdir on %s for %s failed " +                                      "(gfid = %s) (%s)", +                                      prev->this->name, local->loc.path,  +                                      gfid, strerror (op_errno));                          goto unlock;                  } @@ -4413,10 +4524,12 @@ dht_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          int           this_call_cnt = 0;          call_frame_t *prev = NULL;          int           done = 0; +        char gfid[GF_UUID_BUF_SIZE] ={0};          local = frame->local;          prev  = cookie; +          LOCK (&frame->lock);          {                  if (op_ret == -1) { @@ -4426,11 +4539,13 @@ dht_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          if (op_errno != ENOENT && op_errno != EACCES) {                                  local->need_selfheal = 1;                          } +                        uuid_unparse(local->loc.gfid, gfid); -                        gf_log (this->name, GF_LOG_DEBUG, -                                "rmdir on %s for %s failed (%s)", -                                prev->this->name, local->loc.path, -                                strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "rmdir on %s for %s failed." +                                      "(gfid = %s) (%s)", +                                      prev->this->name, local->loc.path, +                                      gfid, strerror (op_errno));                          goto unlock;                  } @@ -4507,6 +4622,7 @@ dht_rmdir_do (call_frame_t *frame, xlator_t *this)          dht_conf_t   *conf = NULL;          int           i = 0;          xlator_t     *hashed_subvol = NULL; +        char gfid[GF_UUID_BUF_SIZE] ={0};          VALIDATE_OR_GOTO (this->private, err); @@ -4518,12 +4634,17 @@ dht_rmdir_do (call_frame_t *frame, xlator_t *this)          local->call_cnt = conf->subvolume_cnt; +          /* first remove from non-hashed_subvol */          hashed_subvol = dht_subvol_get_hashed (this, &local->loc);          if (!hashed_subvol) { -                gf_log (this->name, GF_LOG_WARNING, "failed to get hashed " -                        "subvol for %s",local->loc.path); +                uuid_unparse(local->loc.gfid, gfid); + +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_HASHED_SUBVOL_GET_FAILED, +                        "Failed to get hashed subvol for %s (gfid = %s)", +                        local->loc.path, gfid);          } else {                  local->hashed_subvol = hashed_subvol;          } @@ -4568,6 +4689,8 @@ dht_rmdir_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this          call_frame_t   *main_frame = NULL;          dht_local_t    *main_local = NULL;          int             this_call_cnt = 0; +        char gfid[GF_UUID_BUF_SIZE] ={0}; +          local  = frame->local;          prev   = cookie; @@ -4576,16 +4699,19 @@ dht_rmdir_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this          main_frame = local->main_frame;          main_local = main_frame->local; +        uuid_unparse(local->loc.gfid, gfid); +          if (op_ret == 0) { -                gf_log (this->name, GF_LOG_TRACE, -                        "unlinked linkfile %s on %s", -                        local->loc.path, src->name); +                gf_msg_trace (this->name, 0, +                              "Unlinked linkfile %s on %s, gfid = %s", +                              local->loc.path, src->name, gfid);          } else {                  main_local->op_ret   = -1;                  main_local->op_errno = op_errno; -                gf_log (this->name, GF_LOG_DEBUG, -                        "unlink of %s on %s failed (%s)", -                        local->loc.path, src->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "Unlink of %s on %s failed. (gfid = %s) (%s)", +                              local->loc.path, src->name, gfid, +                              strerror (op_errno));          }          this_call_cnt = dht_frame_return (main_frame); @@ -4609,6 +4735,7 @@ dht_rmdir_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_local_t    *main_local = NULL;          int             this_call_cnt = 0;          dht_conf_t     *conf = this->private; +        char               gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          prev  = cookie; @@ -4624,9 +4751,11 @@ dht_rmdir_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  main_local->op_ret  = -1;                  main_local->op_errno = ENOTEMPTY; +                 uuid_unparse(local->loc.gfid, gfid); +                  gf_log (this->name, GF_LOG_WARNING, -                        "%s on %s found to be not a linkfile (type=0%o)", -                        local->loc.path, src->name, stbuf->ia_type); +                        "%s on %s is not a linkfile (type=0%o, gfid = %s)", +                        local->loc.path, src->name, stbuf->ia_type, gfid);                  goto err;          } @@ -4687,8 +4816,10 @@ dht_rmdir_cached_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          ret = dict_set_uint32 (xattrs, conf->link_xattr_name, 256);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "failed to set linkto key" -                        " in dict"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "Failed to set dictionary value: key = %s", +                        conf->link_xattr_name);                  if (xattrs)                          dict_unref (xattrs);                  goto err; @@ -4724,6 +4855,7 @@ dht_rmdir_is_subvol_empty (call_frame_t *frame, xlator_t *this,          dict_t             *xattrs       = NULL;          dht_conf_t         *conf         = this->private;          xlator_t           *subvol       = NULL; +        char               gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local; @@ -4753,8 +4885,11 @@ dht_rmdir_is_subvol_empty (call_frame_t *frame, xlator_t *this,          ret = dict_set_uint32 (xattrs, conf->link_xattr_name, 256);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "failed to set linkto key" -                        " in dict"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "Failed to set dictionary value: key = %s", +                        conf->link_xattr_name); +                  if (xattrs)                          dict_unref (xattrs);                  return -1; @@ -4792,9 +4927,11 @@ dht_rmdir_is_subvol_empty (call_frame_t *frame, xlator_t *this,                  uuid_copy (lookup_local->loc.gfid, trav->d_stat.ia_gfid); -                gf_log (this->name, GF_LOG_TRACE, -                        "looking up %s on %s", -                        lookup_local->loc.path, src->name); +                uuid_unparse(lookup_local->loc.gfid, gfid); + +                gf_msg_trace (this->name, 0, +                              "looking up %s on subvolume %s, gfid = %s", +                              lookup_local->loc.path, src->name, gfid);                  LOCK (&frame->lock);                  { @@ -4806,8 +4943,9 @@ dht_rmdir_is_subvol_empty (call_frame_t *frame, xlator_t *this,                                                trav->dict);                  if (!subvol) {                          gf_log (this->name, GF_LOG_INFO, -                                "linkfile not having link subvolume. path=%s", -                                lookup_local->loc.path); +                                "Linkfile does not have link subvolume. " +                                "path = %s, gfid = %s",  +                                lookup_local->loc.path, gfid);                          STACK_WIND (lookup_frame, dht_rmdir_lookup_cbk,                                      src, src->fops->lookup,                                      &lookup_local->loc, xattrs); @@ -4852,17 +4990,19 @@ dht_rmdir_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  switch (ret) {                  case 0: /* non linkfiles exist */ -                        gf_log (this->name, GF_LOG_TRACE, -                                "readdir on %s for %s returned %d entries", -                                prev->this->name, local->loc.path, op_ret); +                        gf_msg_trace (this->name, 0, +                                      "readdir on %s for %s returned %d " +                                      "entries", prev->this->name,  +                                      local->loc.path, op_ret);                          local->op_ret = -1;                          local->op_errno = ENOTEMPTY;                          break;                  default:                          /* @ret number of linkfiles are getting unlinked */ -                        gf_log (this->name, GF_LOG_TRACE, -                                "readdir on %s for %s found %d linkfiles", -                                prev->this->name, local->loc.path, ret); +                        gf_msg_trace (this->name, 0, +                                      "readdir on %s for %s found %d " +                                      "linkfiles", prev->this->name,  +                                      local->loc.path, ret);                          break;                  }          } @@ -4888,16 +5028,21 @@ dht_rmdir_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          int           ret           = 0;          dht_conf_t   *conf          = this->private;          int           i             = 0; +        char               gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          prev  = cookie; +          this_call_cnt = dht_frame_return (frame);          if (op_ret == -1) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "opendir on %s for %s failed (%s)", -                        prev->this->name, local->loc.path, -                        strerror (op_errno)); +                uuid_unparse(local->loc.gfid, gfid); + +                gf_msg_debug (this->name, 0, +                              "opendir on %s for %s failed, " +                              "gfid = %s, (%s)", +                              prev->this->name, local->loc.path, gfid, +                              strerror (op_errno));                  if (op_errno != ENOENT) {                          local->op_ret = -1;                          local->op_errno = op_errno; @@ -4920,8 +5065,9 @@ dht_rmdir_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          ret = dict_set_uint32 (dict, conf->link_xattr_name, 256);          if (ret) -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: failed to set '%s' key", +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "%s: Failed to set dictionary value:key = %s",                          local->loc.path, conf->link_xattr_name);          local->call_cnt = conf->subvolume_cnt; @@ -5018,6 +5164,7 @@ dht_entrylk (call_frame_t *frame, xlator_t *this,          xlator_t     *subvol = NULL;          int           op_errno = -1;          dht_local_t  *local = NULL; +        char          gfid[GF_UUID_BUF_SIZE] = {0};          VALIDATE_OR_GOTO (frame, err);          VALIDATE_OR_GOTO (this, err); @@ -5030,10 +5177,14 @@ dht_entrylk (call_frame_t *frame, xlator_t *this,                  goto err;          } +          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                uuid_unparse(loc->gfid, gfid); + +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s, " +                              "gfid = %s", loc->path, gfid);                  op_errno = EINVAL;                  goto err;          } @@ -5071,15 +5222,21 @@ dht_fentrylk (call_frame_t *frame, xlator_t *this,  {          xlator_t     *subvol = NULL;          int           op_errno = -1; +        char               gfid[GF_UUID_BUF_SIZE] = {0}; +          VALIDATE_OR_GOTO (frame, err);          VALIDATE_OR_GOTO (this, err);          VALIDATE_OR_GOTO (fd, err); +        VALIDATE_OR_GOTO(fd->inode, err); + +        uuid_unparse(fd->inode->gfid, gfid);          subvol = dht_subvol_get_cached (this, fd->inode);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "No cached subvolume for fd=%p," +                              " gfid = %s", fd, gfid);                  op_errno = EINVAL;                  goto err;          } @@ -5167,9 +5324,10 @@ dht_notify (xlator_t *this, int event, void *data, ...)                  }                  if (cnt == -1) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "got GF_EVENT_CHILD_UP bad subvolume %s", -                                subvol->name); +                        gf_msg_debug (this->name, 0, +                                      "got GF_EVENT_CHILD_UP bad " +                                      "subvolume %s", +                                      subvol->name);                          break;                  } @@ -5217,9 +5375,9 @@ dht_notify (xlator_t *this, int event, void *data, ...)                  }                  if (cnt == -1) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "got GF_EVENT_CHILD_DOWN bad subvolume %s", -                                subvol->name); +                        gf_msg_debug (this->name, 0, +                                      "got GF_EVENT_CHILD_DOWN bad " +                                      "subvolume %s", subvol->name);                          break;                  } @@ -5244,9 +5402,10 @@ dht_notify (xlator_t *this, int event, void *data, ...)                  }                  if (cnt == -1) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "got GF_EVENT_CHILD_CONNECTING bad subvolume %s", -                                subvol->name); +                        gf_msg_debug (this->name, 0, +                                      "got GF_EVENT_CHILD_CONNECTING" +                                      " bad subvolume %s", +                                      subvol->name);                          break;                  } diff --git a/xlators/cluster/dht/src/dht-common.h b/xlators/cluster/dht/src/dht-common.h index b61a1e9a319..6fa5b91d97d 100644 --- a/xlators/cluster/dht/src/dht-common.h +++ b/xlators/cluster/dht/src/dht-common.h @@ -17,6 +17,7 @@  #include <signal.h>  #include "dht-mem-types.h" +#include "dht-messages.h"  #include "libxlator.h"  #include "syncop.h" diff --git a/xlators/cluster/dht/src/dht-diskusage.c b/xlators/cluster/dht/src/dht-diskusage.c index d035aca2665..8664f550ba2 100644 --- a/xlators/cluster/dht/src/dht-diskusage.c +++ b/xlators/cluster/dht/src/dht-diskusage.c @@ -19,6 +19,7 @@  #include "glusterfs.h"  #include "xlator.h"  #include "dht-common.h" +#include "dht-messages.h"  #include "defaults.h"  #include <sys/time.h> @@ -70,14 +71,15 @@ dht_du_info_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  				conf->du_stats[i].avail_percent = percent;  				conf->du_stats[i].avail_space   = bytes;  				conf->du_stats[i].avail_inodes  = percent_inodes; -				gf_log (this->name, GF_LOG_DEBUG, -					"on subvolume '%s': avail_percent is: " -					"%.2f and avail_space is: %"PRIu64" " -					"and avail_inodes is: %.2f", -					prev->this->name, -					conf->du_stats[i].avail_percent, -					conf->du_stats[i].avail_space, -					conf->du_stats[i].avail_inodes); +				gf_msg_debug (this->name, 0, +				              "subvolume '%s': avail_percent " +					      "is: %.2f and avail_space " +                                              "is: %" PRIu64" and avail_inodes" +                                              " is: %.2f", +					      prev->this->name, +					      conf->du_stats[i].avail_percent, +					      conf->du_stats[i].avail_space, +					      conf->du_stats[i].avail_inodes);  			}  	}  	UNLOCK (&conf->subvolume_lock); @@ -239,7 +241,8 @@ dht_is_subvol_filled (xlator_t *this, xlator_t *subvol)  	if (subvol_filled_space && conf->subvolume_status[i]) {  		if (!(conf->du_stats[i].log++ % (GF_UNIVERSAL_ANSWER * 10))) { -			gf_log (this->name, GF_LOG_WARNING, +			gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_SUBVOL_INSUFF_SPACE,  				"disk space on subvolume '%s' is getting "  				"full (%.2f %%), consider adding more nodes",  				subvol->name, @@ -249,7 +252,8 @@ dht_is_subvol_filled (xlator_t *this, xlator_t *subvol)  	if (subvol_filled_inodes && conf->subvolume_status[i]) {  		if (!(conf->du_stats[i].log++ % (GF_UNIVERSAL_ANSWER * 10))) { -			gf_log (this->name, GF_LOG_CRITICAL, +			gf_msg (this->name, GF_LOG_CRITICAL, 0, +                                DHT_MSG_SUBVOL_INSUFF_INODES,  				"inodes on subvolume '%s' are at "  				"(%.2f %%), consider adding more nodes",  				subvol->name, @@ -281,9 +285,10 @@ dht_free_disk_available_subvol (xlator_t *this, xlator_t *subvol,                  layout = dht_layout_get (this, loc->parent);                  if (!layout) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "layout missing path=%s parent=%s", -                                loc->path, uuid_utoa (loc->parent->gfid)); +                        gf_msg_debug (this->name, 0, +                                      "Missing layout. path=%s," +                                      " parent gfid = %s", loc->path, +                                      uuid_utoa (loc->parent->gfid));                          goto out;                  }          } else { @@ -305,10 +310,9 @@ dht_free_disk_available_subvol (xlator_t *this, xlator_t *subvol,  	UNLOCK (&conf->subvolume_lock);  out:  	if (!avail_subvol) { -		gf_log (this->name, -                        GF_LOG_DEBUG, -			"no subvolume has enough free space and/or inodes\ -                         to create"); +		gf_msg_debug (this->name, 0, +		              "No subvolume has enough free space \ +                              and/or inodes to create");                  avail_subvol = subvol;  	} diff --git a/xlators/cluster/dht/src/dht-hashfn.c b/xlators/cluster/dht/src/dht-hashfn.c index 656cf23a058..72b3df022da 100644 --- a/xlators/cluster/dht/src/dht-hashfn.c +++ b/xlators/cluster/dht/src/dht-hashfn.c @@ -94,12 +94,12 @@ dht_hash_compute (xlator_t *this, int type, const char *name, uint32_t *hash_p)          if (!munged && priv->rsync_regex_valid) {                  len = strlen(name) + 1;                  rsync_friendly_name = alloca(len); -                gf_log (this->name, GF_LOG_TRACE, "trying regex for %s", name); +                gf_msg_trace (this->name, 0, "trying regex for %s", name);                  munged = dht_munge_name (name, rsync_friendly_name, len,                                           &priv->rsync_regex);                  if (munged) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "munged down to %s", rsync_friendly_name); +                        gf_msg_debug (this->name, 0, +                                      "munged down to %s", rsync_friendly_name);                  }          } diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c index 58af04db392..7f0748a07cc 100644 --- a/xlators/cluster/dht/src/dht-helper.c +++ b/xlators/cluster/dht/src/dht-helper.c @@ -440,18 +440,18 @@ dht_subvol_get_hashed (xlator_t *this, loc_t *loc)          layout = dht_layout_get (this, loc->parent);          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "layout missing path=%s parent=%s", -                        loc->path, uuid_utoa (loc->parent->gfid)); +                gf_msg_debug (this->name, 0, +                              "Missing layout. path=%s, parent gfid =%s", +                              loc->path, uuid_utoa (loc->parent->gfid));                  goto out;          }          subvol = dht_layout_search (this, layout, loc->name);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "could not find subvolume for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "No hashed subvolume for path=%s", +                              loc->path);                  goto out;          } @@ -816,7 +816,8 @@ dht_migration_complete_check_task (void *data)                  }                  if (uuid_compare (stbuf.ia_gfid, local->loc.inode->gfid)) { -                        gf_log (this->name, GF_LOG_ERROR, +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_GFID_MISMATCH,                                  "%s: gfid different on the target file on %s",                                  local->loc.path, dst_node->name);                          ret = -1; @@ -830,9 +831,10 @@ dht_migration_complete_check_task (void *data)          ret = dht_layout_preset (this, dst_node, inode);          if (ret != 0) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "%s: could not set preset layout for subvol %s", -                        local->loc.path, dst_node->name); +                gf_msg_debug (this->name, 0, +                              "%s: could not set preset layout " +                              "for subvol %s", local->loc.path,  +                              dst_node->name);                  ret   = -1;                  local->op_errno = EINVAL;                  goto out; @@ -1011,7 +1013,8 @@ dht_rebalance_inprogress_task (void *data)                  }                  if (uuid_compare (stbuf.ia_gfid, local->loc.inode->gfid)) { -                        gf_log (this->name, GF_LOG_ERROR, +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_GFID_MISMATCH,                                  "%s: gfid different on the target file on %s",                                  local->loc.path, dst_node->name);                          ret = -1; diff --git a/xlators/cluster/dht/src/dht-inode-read.c b/xlators/cluster/dht/src/dht-inode-read.c index e8a9a7196bf..aac402a2a42 100644 --- a/xlators/cluster/dht/src/dht-inode-read.c +++ b/xlators/cluster/dht/src/dht-inode-read.c @@ -36,9 +36,9 @@ dht_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          local->op_errno = op_errno;          if ((op_ret == -1) && !dht_inode_missing(op_errno)) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -105,8 +105,8 @@ dht_open (call_frame_t *frame, xlator_t *this,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -146,9 +146,9 @@ dht_file_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if ((op_ret == -1) && !dht_inode_missing(op_errno)) {                  local->op_errno = op_errno; -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -233,9 +233,10 @@ dht_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          {                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "subvolume %s returned -1 (%s)", +                                      prev->this->name,  +                                      strerror (op_errno));                          goto unlock;                  } @@ -281,8 +282,8 @@ dht_stat (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xdata)          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no layout for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -341,8 +342,8 @@ dht_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no layout for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -475,8 +476,8 @@ dht_readv (call_frame_t *frame, xlator_t *this,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -598,8 +599,9 @@ dht_access (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t mask,          local->call_cnt = 1;          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -686,8 +688,8 @@ dht_flush (call_frame_t *frame, xlator_t *this, fd_t *fd, dict_t *xdata)          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -723,9 +725,9 @@ dht_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret,          local->op_errno = op_errno;          if (op_ret == -1 && !dht_inode_missing(op_errno)) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -854,8 +856,8 @@ dht_lk (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_cached (this, fd->inode);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -920,8 +922,8 @@ dht_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc, size_t size,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -974,8 +976,9 @@ dht_xattrop (call_frame_t *frame, xlator_t *this, loc_t *loc,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -1019,8 +1022,8 @@ dht_fxattrop (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_cached (this, fd->inode);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -1073,8 +1076,9 @@ dht_inodelk (call_frame_t *frame, xlator_t *this, const char *volume,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s",  +                              loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -1119,8 +1123,8 @@ dht_finodelk (call_frame_t *frame, xlator_t *this, const char *volume,          subvol = dht_subvol_get_cached (this, fd->inode);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } diff --git a/xlators/cluster/dht/src/dht-inode-write.c b/xlators/cluster/dht/src/dht-inode-write.c index 576f007e513..2bfd80af3cd 100644 --- a/xlators/cluster/dht/src/dht-inode-write.c +++ b/xlators/cluster/dht/src/dht-inode-write.c @@ -133,8 +133,8 @@ dht_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -184,9 +184,9 @@ dht_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if ((op_ret == -1) && !dht_inode_missing(op_errno)) {                  local->op_errno = op_errno;                  local->op_ret = -1; -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -288,8 +288,8 @@ dht_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset,          local->call_cnt = 1;          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -329,8 +329,8 @@ dht_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,          local->call_cnt = 1;          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -370,9 +370,9 @@ dht_fallocate_cbk(call_frame_t *frame, void *cookie, xlator_t *this,          if ((op_ret == -1) && !dht_inode_missing(op_errno)) {                  local->op_errno = op_errno;                  local->op_ret = -1; -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -463,8 +463,8 @@ dht_fallocate(call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode,          local->call_cnt = 1;          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -504,9 +504,9 @@ dht_discard_cbk(call_frame_t *frame, void *cookie, xlator_t *this,          if ((op_ret == -1) && !dht_inode_missing(op_errno)) {                  local->op_errno = op_errno;                  local->op_ret = -1; -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -596,8 +596,8 @@ dht_discard(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,          local->call_cnt = 1;          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -634,9 +634,9 @@ dht_zerofill_cbk(call_frame_t *frame, void *cookie, xlator_t *this,          if ((op_ret == -1) && !dht_inode_missing(op_errno)) {                  local->op_errno = op_errno;                  local->op_ret = -1; -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -729,8 +729,8 @@ dht_zerofill(call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,          local->call_cnt = 1;          subvol = local->cached_subvol;          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no cached subvolume for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no cached subvolume for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } @@ -764,9 +764,9 @@ dht_file_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          local->op_errno = op_errno;          if ((op_ret == -1) && !dht_inode_missing(op_errno)) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "subvolume %s returned -1 (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "subvolume %s returned -1 (%s)", +                              prev->this->name, strerror (op_errno));                  goto out;          } @@ -847,9 +847,9 @@ dht_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          {                  if (op_ret == -1) {                          local->op_errno = op_errno; -                        gf_log (this->name, GF_LOG_DEBUG, -                                "subvolume %s returned -1 (%s)", -                                prev->this->name, strerror (op_errno)); +                        gf_msg_debug (this->name, 0, +                                      "subvolume %s returned -1 (%s)", +                                      prev->this->name, strerror (op_errno));                          goto unlock;                  } @@ -899,15 +899,15 @@ dht_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "no layout for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          }          if (!layout_is_sane (layout)) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "layout is not sane for path=%s", loc->path); +                gf_msg_debug (this->name, 0, +                              "layout is not sane for path=%s", loc->path);                  op_errno = EINVAL;                  goto err;          } @@ -970,15 +970,15 @@ dht_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf,          layout = local->layout;          if (!layout) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no layout for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "no layout for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          }          if (!layout_is_sane (layout)) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "layout is not sane for fd=%p", fd); +                gf_msg_debug (this->name, 0, +                              "layout is not sane for fd=%p", fd);                  op_errno = EINVAL;                  goto err;          } diff --git a/xlators/cluster/dht/src/dht-layout.c b/xlators/cluster/dht/src/dht-layout.c index e1a37b77cda..82127adf6e5 100644 --- a/xlators/cluster/dht/src/dht-layout.c +++ b/xlators/cluster/dht/src/dht-layout.c @@ -18,6 +18,8 @@  #include "xlator.h"  #include "dht-common.h"  #include "byte-order.h" +#include "dht-messages.h" +  #define layout_base_size (sizeof (dht_layout_t)) @@ -284,7 +286,8 @@ dht_disk_layout_merge (xlator_t *this, dht_layout_t *layout,          int      disk_layout[4];  	if (!disk_layout_raw) { -		gf_log (this->name, GF_LOG_CRITICAL, +		gf_msg (this->name, GF_LOG_CRITICAL, 0, +                        DHT_MSG_LAYOUT_MERGE_FAILED,                          "error no layout on disk for merge");  		return -1;  	} @@ -295,22 +298,25 @@ 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_ERROR, -                        "disk layout has invalid count %d", cnt); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_INVALID_DISK_LAYOUT, +                        "Invalid disk layout: Invalid count %d", cnt);                  return -1;          }          type = ntoh32 (disk_layout[1]);  	switch (type) {          case DHT_HASH_TYPE_DM_USER: -                gf_log (this->name, GF_LOG_DEBUG, "found user-set layout"); +                gf_msg_debug (this->name, 0, "found user-set layout");                  layout->type = type;                  /* Fall through. */  	case DHT_HASH_TYPE_DM:  		break;          default: -		gf_log (this->name, GF_LOG_CRITICAL, -			"Catastrophic error layout with unknown type found %d", +		gf_msg (this->name, GF_LOG_CRITICAL, 0, +                        DHT_MSG_INVALID_DISK_LAYOUT, +			"Invalid disk layout: " +                        "Catastrophic error layout with unknown type found %d",  			disk_layout[1]);  		return -1;  	} @@ -321,10 +327,10 @@ dht_disk_layout_merge (xlator_t *this, dht_layout_t *layout,          layout->list[pos].start = start_off;          layout->list[pos].stop  = stop_off; -        gf_log (this->name, GF_LOG_TRACE, -                "merged to layout: %u - %u (type %d) from %s", -                start_off, stop_off, type, -                layout->list[pos].xlator->name); +        gf_msg_trace (this->name, 0, +                      "merged to layout: %u - %u (type %d) from %s", +                      start_off, stop_off, type, +                      layout->list[pos].xlator->name);          return 0;  } @@ -366,9 +372,9 @@ dht_layout_merge (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,          if (ret != 0) {                  layout->list[i].err = 0; -                gf_log (this->name, GF_LOG_TRACE, -                        "missing disk layout on %s. err = %d", -                        subvol->name, err); +                gf_msg_trace (this->name, 0, +                              "Missing disk layout on %s. err = %d", +                              subvol->name, err);                  ret = 0;                  goto out;          } @@ -376,7 +382,8 @@ dht_layout_merge (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,          ret = dht_disk_layout_merge (this, layout, i, disk_layout_raw,  				     disk_layout_len);          if (ret != 0) { -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_LAYOUT_MERGE_FAILED,                          "layout merge from subvolume %s failed",                          subvol->name);                  goto out; @@ -624,6 +631,7 @@ dht_layout_normalize (xlator_t *this, loc_t *loc, dht_layout_t *layout)          uint32_t     missing = 0;          uint32_t     down = 0;          uint32_t     misc = 0; +        char         gfid[GF_UUID_BUF_SIZE] = {0};          ret = dht_layout_sort (layout);          if (ret == -1) { @@ -632,25 +640,28 @@ dht_layout_normalize (xlator_t *this, loc_t *loc, dht_layout_t *layout)                  goto out;          } +        uuid_unparse(loc->gfid, gfid); +          ret = dht_layout_anomalies (this, loc, layout,                                      &holes, &overlaps,                                      &missing, &down, &misc, NULL);          if (ret == -1) {                  gf_log (this->name, GF_LOG_WARNING, -                        "error while finding anomalies in %s -- not good news", -                        loc->path); +                        "Error finding anomalies in %s, gfid = %s", +                        loc->path, gfid);                  goto out;          }          if (holes || overlaps) {                  if (missing == layout->cnt) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "directory %s looked up first time", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "Directory %s looked up first time" +                                      " gfid = %s", loc->path, gfid);                  } else {                          gf_log (this->name, GF_LOG_INFO, -                                "found anomalies in %s. holes=%d overlaps=%d", -                                loc->path, holes, overlaps); +                                "Found anomalies in %s (gfid = %s). " +                                "Holes=%d overlaps=%d", +                                loc->path, gfid, holes, overlaps );                  }                  ret = -1;          } @@ -702,7 +713,10 @@ dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,          uint32_t    start_off = -1;          uint32_t    stop_off = -1;          dht_conf_t *conf = this->private; +        char        gfid[GF_UUID_BUF_SIZE] = {0}; +        if(loc && loc->inode) +                uuid_unparse(loc->inode->gfid, gfid);          for (idx = 0; idx < layout->cnt; idx++) {                  if (layout->list[idx].xlator == subvol) { @@ -712,9 +726,9 @@ dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,          }          if (pos == -1) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "%s - no layout info for subvolume %s", -                        loc->path, subvol->name); +                gf_msg_debug (this->name, 0, +                              "%s - no layout info for subvolume %s", +                              loc->path, subvol->name);                  ret = 1;                  goto out;          } @@ -724,7 +738,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_INFO, -                                "%s - xattr dictionary is NULL", +                                "%s: xattr dictionary is NULL",                                  loc->path);                          ret = -1;                  } @@ -737,7 +751,8 @@ dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout, xlator_t *subvol,          if (dict_ret < 0) {                  if (err == 0 && layout->list[pos].stop) {                          gf_log (this->name, GF_LOG_INFO, -                                "%s - disk layout missing", loc->path); +                                "%s: Disk layout missing, gfid = %s", +                                loc->path, gfid);                          ret = -1;                  }                  goto out; @@ -747,9 +762,10 @@ 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_ERROR, -                        "%s - disk layout has invalid count %d", -                        loc->path, count); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_INVALID_DISK_LAYOUT, +                        "Invalid disk layout: invalid count %d," +                        "path = %s, gfid = %s ", count, loc->path, gfid);                  ret = -1;                  goto out;          } diff --git a/xlators/cluster/dht/src/dht-linkfile.c b/xlators/cluster/dht/src/dht-linkfile.c index dbc9d0b3c7b..3daa3c60713 100644 --- a/xlators/cluster/dht/src/dht-linkfile.c +++ b/xlators/cluster/dht/src/dht-linkfile.c @@ -18,6 +18,7 @@  #include "xlator.h"  #include "compat.h"  #include "dht-common.h" +#include "dht-messages.h"  int  dht_linkfile_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this, @@ -29,6 +30,7 @@ dht_linkfile_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_conf_t   *conf          = NULL;          dht_local_t  *local         = NULL;          call_frame_t *prev          = NULL; +        char         gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          prev = cookie; @@ -37,11 +39,14 @@ dht_linkfile_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if (op_ret)                  goto out; +        uuid_unparse(local->loc.gfid, gfid); +          is_linkfile = check_is_linkfile (inode, stbuf, xattr,                                           conf->link_xattr_name);          if (!is_linkfile) -                gf_log (this->name, GF_LOG_WARNING, "got non-linkfile %s:%s", -                        prev->this->name, local->loc.path); +                gf_log (this->name, GF_LOG_WARNING,  +                        "got non-linkfile %s:%s, gfid = %s", +                        prev->this->name, local->loc.path, gfid);  out:          local->linkfile.linkfile_cbk (frame, cookie, this, op_ret, op_errno,                                        inode, stbuf, postparent, postparent, @@ -49,7 +54,7 @@ out:          return 0;  } -#define is_equal(a, b) (a == b) +#define is_equal(a, b) ((a) == (b))  int  dht_linkfile_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                           int op_ret, int op_errno, inode_t *inode, @@ -81,8 +86,10 @@ dht_linkfile_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                          goto out;                  ret = dict_set_uint32 (xattrs, conf->link_xattr_name, 256);                  if (ret) { -                        gf_log (this->name, GF_LOG_ERROR, -                                "Failed to set linkto key"); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "Failed to set dictionary value. key : %s", +                                conf->link_xattr_name);                          goto out;                  } @@ -112,6 +119,7 @@ dht_linkfile_create (call_frame_t *frame, fop_mknod_cbk_t linkfile_cbk,          int          need_unref = 0;          int          ret = 0;          dht_conf_t  *conf = this->private; +        char           gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          local->linkfile.linkfile_cbk = linkfile_cbk; @@ -127,24 +135,35 @@ dht_linkfile_create (call_frame_t *frame, fop_mknod_cbk_t linkfile_cbk,                  need_unref = 1;          } +          if (!uuid_is_null (local->gfid)) { +                uuid_unparse(local->gfid, gfid); +                  ret = dict_set_static_bin (dict, "gfid-req", local->gfid, 16);                  if (ret) -                        gf_log ("dht-linkfile", GF_LOG_INFO, -                                "%s: gfid set failed", loc->path); +                        gf_msg ("dht-linkfile", GF_LOG_INFO, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "%s: Failed to set dictionary value: " +                                "key = gfid-req, gfid = %s ", loc->path, gfid); +        } else { +                uuid_unparse(loc->gfid, gfid);          }          ret = dict_set_str (dict, GLUSTERFS_INTERNAL_FOP_KEY, "yes");          if (ret) -                gf_log ("dht-linkfile", GF_LOG_INFO, -                        "%s: internal-fop set failed", loc->path); +                gf_msg ("dht-linkfile", GF_LOG_INFO, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "%s: Failed to set dictionary value: key = %s," +                        " gfid = %s", loc->path, +                        GLUSTERFS_INTERNAL_FOP_KEY, gfid);          ret = dict_set_str (dict, conf->link_xattr_name, tovol->name);          if (ret < 0) { -                gf_log (frame->this->name, GF_LOG_INFO, -                        "%s: failed to initialize linkfile data", -                        loc->path); +                gf_msg (frame->this->name, GF_LOG_INFO, 0, +                        DHT_MSG_CREATE_LINK_FAILED, +                        "%s: failed to initialize linkfile data, gfid = %s", +                        loc->path, gfid);                  goto out;          } @@ -180,15 +199,21 @@ dht_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_local_t   *local = NULL;          call_frame_t  *prev = NULL;          xlator_t      *subvol = NULL; +        char           gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          prev = cookie;          subvol = prev->this; +          if (op_ret == -1) { -                gf_log (this->name, GF_LOG_INFO, -                        "unlinking linkfile %s on %s failed (%s)", -                        local->loc.path, subvol->name, strerror (op_errno)); + +                uuid_unparse(local->loc.gfid, gfid); +                gf_msg (this->name, GF_LOG_INFO, op_errno, +                        DHT_MSG_UNLINK_FAILED, +                        "Unlinking linkfile %s (gfid = %s)on " +                        "subvolume %s failed ", +                        local->loc.path, gfid, subvol->name);          }          DHT_STACK_DESTROY (frame); @@ -272,10 +297,12 @@ dht_linkfile_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          loc = &local->loc;          if (op_ret) -                gf_log (this->name, GF_LOG_ERROR, "setattr of uid/gid on %s" -                        " :<gfid:%s> failed (%s)", +                gf_msg (this->name, GF_LOG_ERROR, op_errno, +                        DHT_MSG_SETATTR_FAILED, +                        "Failed to set attr uid/gid on %s" +                        " :<gfid:%s> ",                          (loc->path? loc->path: "NULL"), -                        uuid_utoa(local->gfid), strerror(op_errno)); +                        uuid_utoa(local->gfid));          DHT_STACK_DESTROY (frame); diff --git a/xlators/cluster/dht/src/dht-messages.h b/xlators/cluster/dht/src/dht-messages.h new file mode 100644 index 00000000000..7668e91ac99 --- /dev/null +++ b/xlators/cluster/dht/src/dht-messages.h @@ -0,0 +1,443 @@ +/*Copyright (c) 2013 Red Hat, Inc. <http://www.redhat.com> +  This file is part of GlusterFS. + +  This file is licensed to you under your choice of the GNU Lesser +  General Public License, version 3 or any later version (LGPLv3 or +  later), or the GNU General Public License, version 2 (GPLv2), in all +  cases as published by the Free Software Foundation. +*/ + +#ifndef _DHT_MESSAGES_H_ +#define _DHT_MESSAGES_H_ + +#ifndef _CONFIG_H +#define _CONFIG_H +#include "config.h" +#endif + +#include "glfs-message-id.h" + +/*! \file dht-messages.h + *  \brief DHT log-message IDs and their descriptions + * + */ + +/* NOTE: Rules for message additions + * 1) Each instance of a message is _better_ left with a unique message ID, even + *    if the message format is the same. Reasoning is that, if the message + *    format needs to change in one instance, the other instances are not + *    impacted or the new change does not change the ID of the instance being + *    modified. + * 2) Addition of a message, + *       - Should increment the GLFS_NUM_MESSAGES + *       - Append to the list of messages defined, towards the end + *       - Retain macro naming as glfs_msg_X (for redability across developers) + * NOTE: Rules for message format modifications + * 3) Check acorss the code if the message ID macro in question is reused + *    anywhere. If reused then then the modifications should ensure correctness + *    everywhere, or needs a new message ID as (1) above was not adhered to. If + *    not used anywhere, proceed with the required modification. + * NOTE: Rules for message deletion + * 4) Check (3) and if used anywhere else, then cannot be deleted. If not used + *    anywhere, then can be deleted, but will leave a hole by design, as + *    addition rules specify modification to the end of the list and not filling + *    holes. + */ + +#define GLFS_DHT_BASE                   GLFS_MSGID_COMP_DHT +#define GLFS_DHT_NUM_MESSAGES           35 +#define GLFS_MSGID_END          (GLFS_DHT_BASE + GLFS_DHT_NUM_MESSAGES + 1) + +/* Messages with message IDs */ +#define glfs_msg_start_x GLFS_DHT_BASE, "Invalid: Start of messages" + + + + +/*! + * @messageid 109001 + * @diagnosis   Cached subvolume could not be found for the specified + *              path + * @recommendedaction  None + * + */ + +#define DHT_MSG_CACHED_SUBVOL_GET_FAILED        (GLFS_DHT_BASE + 1) + +/*! + * @messageid 109002 + * @diagnosis Linkfile creation failed + * @recommendedaction  None + * + */ + +#define DHT_MSG_CREATE_LINK_FAILED       (GLFS_DHT_BASE + 2) + +/*! + * @messageid 109003 + * @diagnosis The value could not be set for the specified key in + *       the dictionary + * + * @recommendedaction  None + * + */ + +#define DHT_MSG_DICT_SET_FAILED       (GLFS_DHT_BASE + 3) + +/*! + * @messageid 109004 + * @diagnosis Directory attributes could not be healed + * @recommendedaction  None + * + */ + +#define DHT_MSG_DIR_ATTR_HEAL_FAILED (GLFS_DHT_BASE + 4) + +/*! + * @messageid 109005 + * @diagnosis Self-heal failed for the specified directory + * @recommendedaction  Ensure that all subvolumes are online + *              and reachable and perform a lookup operation + *              on the directory again. + * + */ + +#define DHT_MSG_DIR_SELFHEAL_FAILED  (GLFS_DHT_BASE + 5) + +/*! + * @messageid 109006 + * @diagnosis The extended attributes could not be healed for + *            the specified directory on the specified subvolume + * + * @recommendedaction  None + * + */ + +#define DHT_MSG_DIR_SELFHEAL_XATTR_FAILED  (GLFS_DHT_BASE + 6) + +/*! + * @messageid 109007 + * @diagnosis   A lookup operation found the file with the same path + *      on multiple subvolumes. + * @recommendedaction + *      1. Create backups of the file on other subvolumes. + *      2. Inspect the content of the files to identify + *                      and retain the most appropriate file. + * + */ + +#define DHT_MSG_FILE_ON_MULT_SUBVOL               (GLFS_DHT_BASE + 7) + +/*! + * @messageid 109008 + * @diagnosis A path resolves to a file on one subvolume and a directory + *             on another + * @recommendedaction + *              1. Create a backup of the file with a different name + *              and delete the original file. + *              2. In the newly created back up file, remove the "trusted.gfid" + *                      extended attribute. + *                - Command: setfattr -x "trusted.gfid" \<path to the newly created backup file\> + *              3. Perform a new lookup operation on both the new and old paths. + *              4. From the mount point, inspect both the paths and retain the + *              relevant file or directory. + * + */ + +#define DHT_MSG_FILE_TYPE_MISMATCH        (GLFS_DHT_BASE + 8) + +/*! + * @messageid 109009 + * @diagnosis The GFID of the file/directory is different on different subvolumes + * @recommendedaction  None + * + */ + +#define DHT_MSG_GFID_MISMATCH        (GLFS_DHT_BASE + 9) + +/*! + * @messageid 109010 + * @diagnosis The GFID of the specified file/directory is NULL. + * @recommendedaction  None + * + */ + +#define DHT_MSG_GFID_NULL        (GLFS_DHT_BASE + 10) + +/*! + * @messageid 109011 + * @diagnosis The hashed subvolume could not be found for the specified + *              file/directory + * @recommendedaction  None + * + */ + +#define DHT_MSG_HASHED_SUBVOL_GET_FAILED        (GLFS_DHT_BASE + 11) + +/*! + * @messageid 109012 + * @diagnosis The Distributed Hash Table Translator could not be initiated as the + *            system is out of memory. + * @recommendedaction  None + * + */ + +#define DHT_MSG_INIT_FAILED  (GLFS_DHT_BASE + 12) + +/*! + * @messageid 109013 + * @diagnosis Invalid DHT configuration in the volfile + * @recommendedaction  None + * + */ + +#define DHT_MSG_INVALID_CONFIGURATION  (GLFS_DHT_BASE + 13) + +/*! + * @messageid 109014 + * @diagnosis Invalid disk layout + * @recommendedaction  None + * + */ + +#define DHT_MSG_INVALID_DISK_LAYOUT  (GLFS_DHT_BASE + 14) + +/*! + * @messageid 109015 + * @diagnosis Invalid DHT configuration option. + * @recommendedaction + *              1. Reset the option with a valid value using the volume + *                set command. + *              2. Restart the process that logged the message in the + *                log file. + * + */ + +#define DHT_MSG_INVALID_OPTION  (GLFS_DHT_BASE + 15) + +/*! + * @messageid 109016 + * @diagnosis The fix layout operation failed + * @recommendedaction  None + * + */ + +#define DHT_MSG_LAYOUT_FIX_FAILED       (GLFS_DHT_BASE + 16) + +/*! + * @messageid 109017 + * @diagnosis Layout merge failed + * @recommendedaction  None + * + */ + +#define DHT_MSG_LAYOUT_MERGE_FAILED       (GLFS_DHT_BASE + 17) + +/*! + * @messageid 109018 + * @diagnosis The layout for the specified directory does not match +                that on the disk. + * @recommendedaction  None + * + */ + +#define DHT_MSG_LAYOUT_MISMATCH       (GLFS_DHT_BASE + 18) + +/*! + * @messageid 109019 + * @diagnosis No layout is present for the specified file/directory + * @recommendedaction  None + * + */ + +#define DHT_MSG_LAYOUT_NULL       (GLFS_DHT_BASE + 19) + +/*! + * @messageid 109020 + * @diagnosis Informational message: Migration of data from the cached + *      subvolume to the hashed subvolume is complete + * @recommendedaction  None + * + */ + +#define DHT_MSG_MIGRATE_DATA_COMPLETE     (GLFS_DHT_BASE + 20) + +/*! + * @messageid 109021 + * @diagnosis Migration of data failed during the rebalance operation + *     \n Cause: Directories could not be read to identify the files for the + *             migration process. + * @recommendedaction + *             The log message would indicate the reason for the failure and + *             the corrective action depends on the specific error that is + *             encountered. The error is one of the standard UNIX errors. + * + */ + +#define DHT_MSG_MIGRATE_DATA_FAILED     (GLFS_DHT_BASE + 21) + +/*! + * @messageid 109022 + * @diagnosis Informational message: The file was migrated successfully during + *              the rebalance operation. + * @recommendedaction  None + * + */ + +#define DHT_MSG_MIGRATE_FILE_COMPLETE     (GLFS_DHT_BASE + 22) + +/*! + * @messageid 109023 + * @diagnosis File migration failed during the rebalance operation + *            \n Cause: Rebalance moves data from the cached subvolume to + *            the hashed subvolume. Migrating a single file is a multi-step operation + *            which involves opening, reading, and writing the data and metadata. + *            Any failures in this multi-step operation can result in a file + *            migration failure. + * @recommendedaction  The log message would indicate the reason for the failure and the + *              corrective action depends on the specific error that is encountered. + *              The error is one of the standard UNIX errors. + * + */ + +#define DHT_MSG_MIGRATE_FILE_FAILED     (GLFS_DHT_BASE + 23) + +/*! + * @messageid 109024 + * @diagnosis Out of memory + * @recommendedaction  None + * + */ + +#define DHT_MSG_NO_MEMORY        (GLFS_DHT_BASE + 24) + +/*! + * @messageid 109025 + * @diagnosis  The opendir() call failed on the specified directory + *              \n Cause: When a directory is renamed, the Distribute Hash + *              table translator checks whether the destination directory + *              is empty. This message indicates that the opendir() call + *              on the destination directory has failed. + * @recommendedaction The log message would indicate the reason for the + *              failure and the corrective action depends on the specific + *              error that is encountered. The error is one of the standard + *              UNIX errors. + * + */ + +#define DHT_MSG_OPENDIR_FAILED       (GLFS_DHT_BASE + 25) + +/*! + * @messageid 109026 + * @diagnosis The rebalance operation failed. + * @recommendedaction Check the log file for details about the failure. + *     Possible causes: + *     - A subvolume is down: Restart the rebalance operation after + *             bringing up all subvolumes. + * + */ + +#define DHT_MSG_REBALANCE_FAILED   (GLFS_DHT_BASE + 26) + +/*! + * @messageid 109027 + * @diagnosis Failed to start the rebalance process. + * @recommendedaction Check the log file for details about the failure. + * + */ + +#define DHT_MSG_REBALANCE_START_FAILED     (GLFS_DHT_BASE + 27) + +/*! + * @messageid 109028 + * @diagnosis Informational message that indicates the status of the + *            rebalance operation and details as to how many files were + *            migrated, skipped, failed etc + * @recommendedaction  None + * + */ + +#define DHT_MSG_REBALANCE_STATUS     (GLFS_DHT_BASE + 28) + +/*! + * @messageid 109029 + * @diagnosis The rebalance operation was aborted by the user. + * @recommendedaction  None + * + */ + +#define DHT_MSG_REBALANCE_STOPPED     (GLFS_DHT_BASE + 29) + +/*! + * @messageid 109030 + * @diagnosis The file or directory could not be renamed + * @recommendedaction   Ensure that all the subvolumes are + *                      online and reachable and try renaming + *                      the file or directory again. + * + */ + +#define DHT_MSG_RENAME_FAILED        (GLFS_DHT_BASE + 30) + +/*! + * @messageid 109031 + * @diagnosis Attributes could not be set for the specified file or + *             directory. + * @recommendedaction  None + * + */ + +#define DHT_MSG_SETATTR_FAILED       (GLFS_DHT_BASE + 31) + +/*! + * @messageid 109032 + * @diagnosis The specified subvolume is running out of file system inodes. +        If all subvolumes run out of inodes, then new files cannot be created. + * @recommendedaction  Consider adding more nodes to the cluster if all subvolumes + *        run out of inodes + * + */ + +#define DHT_MSG_SUBVOL_INSUFF_INODES    (GLFS_DHT_BASE + 32) + +/*! + * @messageid 109033 + * @diagnosis The specified subvolume is running out of disk space. If all +              subvolumes run out of space, new files cannot be created. + * @recommendedaction  Consider adding more nodes to the cluster if all subvolumes + *              run out of disk space. + * + */ + +#define DHT_MSG_SUBVOL_INSUFF_SPACE    (GLFS_DHT_BASE + 33) + +/*! + * @messageid 109034 + * @diagnosis Failed to unlink the specified file/directory + * @recommendedaction  The log message would indicate the reason +              for the failure and the corrective action depends on +              the specific error that is encountered. + */ + +#define DHT_MSG_UNLINK_FAILED     (GLFS_DHT_BASE + 34) + + + +/*! + * @messageid 109035 + * @diagnosis The layout information could not be set in the inode + * @recommendedaction  None + * + */ +#define DHT_MSG_LAYOUT_SET_FAILED     (GLFS_DHT_BASE + 35) + + +/*------------*/ +#define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages" + + +#endif /* _DHT_MESSAGES_H_ */ + + + + diff --git a/xlators/cluster/dht/src/dht-rebalance.c b/xlators/cluster/dht/src/dht-rebalance.c index 49241d17657..603502c780c 100644 --- a/xlators/cluster/dht/src/dht-rebalance.c +++ b/xlators/cluster/dht/src/dht-rebalance.c @@ -154,14 +154,18 @@ gf_defrag_handle_hardlink (xlator_t *this, loc_t *loc, dict_t  *xattrs,          conf = this->private;          if (uuid_is_null (loc->pargfid)) { -                gf_log ("", GF_LOG_ERROR, "loc->pargfid is NULL for " -                        "%s", loc->path); +                gf_msg ("", GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed :" +                        "loc->pargfid is NULL for %s", loc->path);                  goto out;          }          if (uuid_is_null (loc->gfid)) { -                gf_log ("", GF_LOG_ERROR, "loc->gfid is NULL for " -                        "%s", loc->path); +                gf_msg ("", GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed :" +                        "loc->gfid is NULL for %s", loc->path);                  goto out;          } @@ -174,14 +178,20 @@ gf_defrag_handle_hardlink (xlator_t *this, loc_t *loc, dict_t  *xattrs,          cached_subvol = dht_subvol_get_cached (this, loc->inode);          if (!cached_subvol) { -                gf_log (this->name, GF_LOG_ERROR, "Failed to get cached subvol" +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed :" +                        "Failed to get cached subvol"                          " for %s on %s", loc->name, this->name);                  goto out;          }          hashed_subvol = dht_subvol_get_hashed (this, loc);          if (!hashed_subvol) { -                gf_log (this->name, GF_LOG_ERROR, "Failed to get hashed subvol" +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed :" +                        "Failed to get hashed subvol"                          " for %s on %s", loc->name, this->name);                  goto out;          } @@ -195,15 +205,22 @@ gf_defrag_handle_hardlink (xlator_t *this, loc_t *loc, dict_t  *xattrs,                  ret = dict_set_str (link_xattr, conf->link_xattr_name,                                      hashed_subvol->name);                  if (ret) { -                        gf_log (this->name, GF_LOG_ERROR, "Failed to set " -                                "linkto xattr in dict for %s", loc->name); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED, +                                "Migrate file failed :" +                                "Failed to set dictionary value:" +                                " key = %s for %s",  +                                conf->link_xattr_name, loc->name);                          goto out;                  }                  ret = syncop_setxattr (cached_subvol, loc, link_xattr, 0);                  if (ret) { -                        gf_log (this->name, GF_LOG_ERROR, "Linkto setxattr " -                                "failed %s -> %s (%s)", cached_subvol->name, +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED, +                                "Migrate file failed :" +                                "Linkto setxattr failed %s -> %s (%s)",  +                                cached_subvol->name,                                  loc->name, strerror (-ret));                          ret = -1;                          goto out; @@ -236,8 +253,11 @@ gf_defrag_handle_hardlink (xlator_t *this, loc_t *loc, dict_t  *xattrs,          }          ret = syncop_lookup (hashed_subvol, loc, NULL, &iatt, NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "Failed lookup %s on %s (%s)" -                        , loc->name, hashed_subvol->name, strerror (-ret)); +                gf_msg (this->name, GF_LOG_ERROR, -ret, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed :Failed lookup %s on %s ", +                        loc->name, hashed_subvol->name); +                  ret = -1;                  goto out;          } @@ -270,7 +290,9 @@ __is_file_migratable (xlator_t *this, loc_t *loc,          int ret = -1;          if (IA_ISDIR (stbuf->ia_type)) { -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:"                          "%s: migrate-file called on directory", loc->path);                  ret = -1;                  goto out; @@ -291,12 +313,16 @@ __is_file_migratable (xlator_t *this, loc_t *loc,                     Checkout gf_defrag_handle_hardlink for more information.                     */                          if (ret && ret != -2) { -                                gf_log (this->name, GF_LOG_WARNING, +                                gf_msg (this->name, GF_LOG_WARNING, 0, +                                        DHT_MSG_MIGRATE_FILE_FAILED, +                                        "Migrate file failed:"                                          "%s: failed to migrate file with link",                                          loc->path);                          }                  } else { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED, +                                "Migrate file failed:"                                  "%s: file has hardlinks", loc->path);                          ret = -ENOTSUP;                  } @@ -324,21 +350,26 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc          ret = dict_set_static_bin (dict, "gfid-req", stbuf->ia_gfid, 16);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, -                        "%s: failed to set gfid in dict for create", loc->path); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "%s: failed to set dictionary value: key = gfid-req", +                        loc->path);                  goto out;          }          ret = dict_set_str (dict, conf->link_xattr_name, from->name);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, -                        "%s: failed to set gfid in dict for create", loc->path); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "%s: failed to set dictionary value: key = %s ", +                        loc->path, conf->link_xattr_name);                  goto out;          }          fd = fd_create (loc->inode, DHT_REBALANCE_PID);          if (!fd) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "%s: fd create failed (destination) (%s)",                          loc->path, strerror (errno));                  ret = -1; @@ -349,8 +380,9 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc          if (!ret) {                  /* File exits in the destination, check if gfid matches */                  if (uuid_compare (stbuf->ia_gfid, new_stbuf.ia_gfid) != 0) { -                        gf_log (this->name, GF_LOG_ERROR, -                                "file %s exits in %s with different gfid", +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_GFID_MISMATCH, +                                "file %s exists in %s with different gfid",                                  loc->path, to->name);                          fd_unref (fd);                          goto out; @@ -358,7 +390,8 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc          }          if ((ret < 0) && (-ret != ENOENT)) {                  /* File exists in destination, but not accessible */ -                gf_log (THIS->name, GF_LOG_WARNING, +                gf_msg (THIS->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "%s: failed to lookup file (%s)",                          loc->path, strerror (-ret));                  ret = -1; @@ -370,7 +403,8 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc          ret = syncop_create (to, loc, O_RDWR, DHT_LINKFILE_MODE, fd,                               dict, &new_stbuf);          if (ret < 0) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "failed to create %s on %s (%s)",                          loc->path, to->name, strerror (-ret));                  ret = -1; @@ -379,13 +413,15 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc          ret = syncop_fsetxattr (to, fd, xattr, 0);          if (ret < 0) -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "%s: failed to set xattr on %s (%s)",                          loc->path, to->name, strerror (-ret));          ret = syncop_ftruncate (to, fd, stbuf->ia_size);          if (ret < 0) -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "ftruncate failed for %s on %s (%s)",                          loc->path, to->name, strerror (-ret)); @@ -393,7 +429,8 @@ __dht_rebalance_create_dst_file (xlator_t *to, xlator_t *from, loc_t *loc, struc                                 (GF_SET_ATTR_UID | GF_SET_ATTR_GID),                                  NULL, NULL);          if (ret < 0) -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "chown failed for %s on %s (%s)",                          loc->path, to->name, strerror (-ret)); @@ -423,7 +460,8 @@ __dht_check_free_space (xlator_t *to, xlator_t *from, loc_t *loc,          ret = syncop_statfs (from, loc, &src_statfs);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "failed to get statfs of %s on %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1; @@ -432,7 +470,8 @@ __dht_check_free_space (xlator_t *to, xlator_t *from, loc_t *loc,          ret = syncop_statfs (to, loc, &dst_statfs);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "failed to get statfs of %s on %s (%s)",                          loc->path, to->name, strerror (-ret));                  ret = -1; @@ -460,7 +499,9 @@ __dht_check_free_space (xlator_t *to, xlator_t *from, loc_t *loc,                                       GF_DISK_SECTOR_SIZE);                  if ((dst_statfs_blocks - stbuf->ia_blocks) <                      (src_statfs_blocks + stbuf->ia_blocks)) { -                        gf_log (this->name, GF_LOG_WARNING, + +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED,                                  "data movement attempted from node (%s) with"                                  " higher disk space to a node (%s) with "                                  "lesser disk space (%s)", from->name, @@ -475,7 +516,8 @@ __dht_check_free_space (xlator_t *to, xlator_t *from, loc_t *loc,  check_avail_space:          if (((dst_statfs.f_bavail * dst_statfs.f_bsize) /                GF_DISK_SECTOR_SIZE) < stbuf->ia_blocks) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "data movement attempted from node (%s) with "                          "to node (%s) which does not have required free space"                          " for %s", from->name, to->name, loc->path); @@ -557,7 +599,8 @@ __dht_rebalance_open_src_file (xlator_t *from, xlator_t *to, loc_t *loc,          fd = fd_create (loc->inode, DHT_REBALANCE_PID);          if (!fd) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "%s: fd create failed (source)", loc->path);                  ret = -1;                  goto out; @@ -565,7 +608,8 @@ __dht_rebalance_open_src_file (xlator_t *from, xlator_t *to, loc_t *loc,          ret = syncop_open (from, loc, O_RDWR, fd);          if (ret < 0) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "failed to open file %s on %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1; @@ -589,7 +633,8 @@ __dht_rebalance_open_src_file (xlator_t *from, xlator_t *to, loc_t *loc,             to show which is the target, so other clients can work around it */          ret = syncop_setxattr (from, loc, dict, 0);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "failed to set xattr on %s in %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1; @@ -604,7 +649,8 @@ __dht_rebalance_open_src_file (xlator_t *from, xlator_t *to, loc_t *loc,          ret = syncop_setattr (from, loc, &iatt, GF_SET_ATTR_MODE, NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "failed to set mode on %s in %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1; @@ -648,7 +694,9 @@ migrate_special_files (xlator_t *this, xlator_t *from, xlator_t *to, loc_t *loc,          /* check in the destination if the file is link file */          ret = syncop_lookup (to, loc, dict, &stbuf, &rsp_dict, NULL);          if ((ret < 0) && (-ret != ENOENT)) { -                gf_log (this->name, GF_LOG_WARNING, "%s: lookup failed (%s)", +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "%s: lookup failed (%s)",                          loc->path, strerror (-ret));                  ret = -1;                  goto out; @@ -662,7 +710,8 @@ migrate_special_files (xlator_t *this, xlator_t *from, xlator_t *to, loc_t *loc,          if (!ret) {                  if (!check_is_linkfile (loc->inode, &stbuf, rsp_dict,                                          conf->link_xattr_name)) { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED,                                  "%s: file exists in destination", loc->path);                          ret = -1;                          goto out; @@ -671,7 +720,8 @@ migrate_special_files (xlator_t *this, xlator_t *from, xlator_t *to, loc_t *loc,                  /* as file is linkfile, delete it */                  ret = syncop_unlink (to, loc);                  if (ret) { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED,                                  "%s: failed to delete the linkfile (%s)",                                  loc->path, strerror (-ret));                          ret = -1; @@ -692,7 +742,8 @@ migrate_special_files (xlator_t *this, xlator_t *from, xlator_t *to, loc_t *loc,                  /* Handle symlinks separately */                  ret = syncop_readlink (from, loc, &link, buf->ia_size);                  if (ret < 0) { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED,                                  "%s: readlink on symlink failed (%s)",                                  loc->path, strerror (-ret));                          ret = -1; @@ -701,7 +752,8 @@ migrate_special_files (xlator_t *this, xlator_t *from, xlator_t *to, loc_t *loc,                  ret = syncop_symlink (to, loc, link, dict, 0);                  if (ret) { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED,                                  "%s: creating symlink failed (%s)",                                  loc->path, strerror (-ret));                          ret = -1; @@ -716,7 +768,9 @@ migrate_special_files (xlator_t *this, xlator_t *from, xlator_t *to, loc_t *loc,                              makedev (ia_major (buf->ia_rdev),                                       ia_minor (buf->ia_rdev)), dict, 0);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING, "%s: mknod failed (%s)", +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "%s: mknod failed (%s)",                          loc->path, strerror (-ret));                  ret = -1;                  goto out; @@ -727,7 +781,8 @@ done:                                (GF_SET_ATTR_UID | GF_SET_ATTR_GID |                                 GF_SET_ATTR_MODE), NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "%s: failed to perform setattr on %s (%s)",                          loc->path, to->name, strerror (-ret));                  ret = -1; @@ -735,7 +790,9 @@ done:          ret = syncop_unlink (from, loc);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING, "%s: unlink failed (%s)", +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "%s: unlink failed (%s)",                          loc->path, strerror (-ret));                  ret = -1;          } @@ -783,7 +840,9 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          ret = dict_set_int32 (dict, conf->link_xattr_name, 256);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:"                          "%s: failed to set 'linkto' key in dict", loc->path);                  goto out;          } @@ -791,7 +850,10 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          /* Phase 1 - Data migration is in progress from now on */          ret = syncop_lookup (from, loc, dict, &stbuf, &xattr_rsp, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "%s: lookup failed on %s (%s)", +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:" +                        "%s: lookup failed on %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1;                  goto out; @@ -820,7 +882,9 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          /* TODO: move all xattr related operations to fd based operations */          ret = syncop_listxattr (from, loc, &xattr);          if (ret < 0) { -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:"                          "%s: failed to get xattr from %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1; @@ -840,7 +904,9 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          /* Open the source, and also update mode/xattr */          ret = __dht_rebalance_open_src_file (from, to, loc, &stbuf, &src_fd);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "failed to open %s on %s", +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed: failed to open %s on %s",                          loc->path, from->name);                  goto out;          } @@ -848,8 +914,10 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          ret = syncop_fstat (from, src_fd, &stbuf);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "failed to lookup %s on %s (%s)", -                        loc->path, from->name, strerror (-ret)); +                gf_msg (this->name, GF_LOG_ERROR, -ret, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:failed to lookup %s on %s ", +                        loc->path, from->name);                  ret = -1;                  goto out;          } @@ -862,12 +930,16 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          ret = __dht_rebalance_migrate_data (from, to, src_fd, dst_fd,  					    stbuf.ia_size, file_has_holes);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "%s: failed to migrate data", +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed: %s: failed to migrate data",                          loc->path);                  /* reset the destination back to 0 */                  ret = syncop_ftruncate (to, dst_fd, 0);                  if (ret) { -                        gf_log (this->name, GF_LOG_ERROR, +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED, +                                "Migrate file failed: "                                  "%s: failed to reset target size back to 0 (%s)",                                  loc->path, strerror (-ret));                  } @@ -892,9 +964,10 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          ret = syncop_fstat (from, src_fd, &new_stbuf);          if (ret < 0) {                  /* Failed to get the stat info */ -                gf_log (this->name, GF_LOG_ERROR, -                        "failed to fstat file %s on %s (%s)", -                        loc->path, from->name, strerror (-ret)); +                gf_msg ( this->name, GF_LOG_ERROR, -ret, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed: failed to fstat file %s on %s ", +                        loc->path, from->name);                  ret = -1;                  goto out;          } @@ -915,9 +988,11 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,                                 (GF_SET_ATTR_UID | GF_SET_ATTR_GID |                                  GF_SET_ATTR_MODE), NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: failed to perform setattr on %s (%s)", -                        loc->path, to->name, strerror (-ret)); +                gf_msg (this->name, GF_LOG_WARNING, -ret, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:" +                        "%s: failed to perform setattr on %s ", +                        loc->path, to->name);                  ret = -1;                  goto out;          } @@ -927,9 +1002,9 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,                                (GF_SET_ATTR_MTIME | GF_SET_ATTR_ATIME),                                NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: failed to perform setattr on %s (%s)", -                        loc->path, to->name, strerror (-ret)); +                gf_log (this->name, GF_LOG_WARNING,  +                        "%s: failed to perform setattr on %s ", +                        loc->path, to->name);                  ret = -1;          } @@ -938,9 +1013,11 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          ret = syncop_fsetattr (from, src_fd, &empty_iatt,                                 GF_SET_ATTR_MODE, NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING,             \ -                        "%s: failed to perform setattr on %s (%s)", -                        loc->path, from->name, strerror (-ret)); +                gf_msg (this->name, GF_LOG_WARNING, -ret, +                        DHT_MSG_MIGRATE_FILE_FAILED, +                        "Migrate file failed:" +                        "%s: failed to perform setattr on %s ", +                        loc->path, from->name);                  ret = -1;                  goto out;          } @@ -967,7 +1044,8 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          /* Do a stat and check the gfid before unlink */          ret = syncop_stat (from, loc, &empty_iatt);          if (ret) { -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_MIGRATE_FILE_FAILED,                          "%s: failed to do a stat on %s (%s)",                          loc->path, from->name, strerror (-ret));                  ret = -1; @@ -978,7 +1056,8 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,                  /* take out the source from namespace */                  ret = syncop_unlink (from, loc);                  if (ret) { -                        gf_log (this->name, GF_LOG_WARNING, +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_MIGRATE_FILE_FAILED,                                  "%s: failed to perform unlink on %s (%s)",                                  loc->path, from->name, strerror (-ret));                          ret = -1; @@ -988,13 +1067,14 @@ dht_migrate_file (xlator_t *this, loc_t *loc, xlator_t *from, xlator_t *to,          ret = syncop_lookup (this, loc, NULL, NULL, NULL, NULL);          if (ret) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "%s: failed to lookup the file on subvolumes (%s)", -                        loc->path, strerror (-ret)); +                gf_msg_debug (this->name, 0, +                              "%s: failed to lookup the file on subvolumes (%s)", +                              loc->path, strerror (-ret));                  ret = -1;          } -        gf_log (this->name, GF_LOG_INFO, +        gf_msg (this->name, GF_LOG_INFO, 0, +                DHT_MSG_MIGRATE_FILE_COMPLETE,                  "completed migration of %s from subvolume %s to %s",                  loc->path, from->name, to->name); @@ -1241,7 +1321,9 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,          ret = syncop_opendir (this, loc, fd);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "Failed to open dir %s", +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_MIGRATE_DATA_FAILED, +                        "Migrate data failed: Failed to open dir %s",                          loc->path);                  ret = -1;                  goto out; @@ -1254,8 +1336,10 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                  if (ret < 0) { -                        gf_log (this->name, GF_LOG_ERROR, "Readdir returned %s." -                                " Aborting migrate-data", +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_MIGRATE_DATA_FAILED, +                                "%s: Migrate data failed: Readdir returned" +                                " %s. Aborting migrate-data", loc->path,                                  strerror(-ret));                          ret = -1;                          goto out; @@ -1301,8 +1385,9 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                          }                          if (uuid_is_null (entry->d_stat.ia_gfid)) { -                                gf_log (this->name, GF_LOG_ERROR, "%s/%s" -                                        " gfid not present", loc->path, +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_GFID_NULL, +                                        "%s/%s gfid not present", loc->path,                                           entry->d_name);                                  continue;                          } @@ -1310,8 +1395,9 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                          uuid_copy (entry_loc.gfid, entry->d_stat.ia_gfid);                          if (uuid_is_null (loc->gfid)) { -                                gf_log (this->name, GF_LOG_ERROR, "%s/%s" -                                        " gfid not present", loc->path, +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_GFID_NULL, +                                        "%s/%s gfid not present", loc->path,                                           entry->d_name);                                  continue;                          } @@ -1323,8 +1409,10 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                          ret = syncop_lookup (this, &entry_loc, NULL, &iatt,                                               NULL, NULL);                          if (ret) { -                                gf_log (this->name, GF_LOG_ERROR, "%s" -                                        " lookup failed", entry_loc.path); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_MIGRATE_FILE_FAILED, +                                        "Migrate file failed:%s lookup failed",  +                                        entry_loc.path);                                  ret = -1;                                  continue;                          } @@ -1332,8 +1420,11 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                          ret = syncop_getxattr (this, &entry_loc, &dict,                                                 GF_XATTR_NODE_UUID_KEY);                          if(ret < 0) { -                                gf_log (this->name, GF_LOG_ERROR, "Failed to " -                                        "get node-uuid for %s", entry_loc.path); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_MIGRATE_FILE_FAILED, +                                        "Migrate file failed:" +                                        "Failed to get node-uuid for %s",  +                                        entry_loc.path);                                  ret = -1;                                  continue;                          } @@ -1358,8 +1449,9 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                           * the other node will take responsibility of migration                           */                          if (uuid_compare (node_uuid, defrag->node_uuid)) { -                                gf_log (this->name, GF_LOG_TRACE, "%s does not" -                                        "belong to this node", entry_loc.path); +                                gf_msg_trace (this->name, 0, "%s does not" +                                              "belong to this node",  +                                              entry_loc.path);                                  continue;                          } @@ -1398,13 +1490,15 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                                  /* errno is overloaded. See                                   * rebalance_task_completion () */                                  if (op_errno == ENOSPC) { -                                        gf_log (this->name, GF_LOG_DEBUG, -                                                "migrate-data skipped for %s" -                                                " due to space constraints", -                                                entry_loc.path); +                                        gf_msg_debug (this->name, 0, +                                                      "migrate-data skipped for" +                                                      " %s due to space " +                                                      "constraints", +                                                      entry_loc.path);                                          defrag->skipped +=1;                                  } else{ -                                        gf_log (this->name, GF_LOG_ERROR, +                                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                                DHT_MSG_MIGRATE_FILE_FAILED,                                                  "migrate-data failed for %s",                                                  entry_loc.path);                                          defrag->total_failures +=1; @@ -1414,16 +1508,18 @@ gf_defrag_migrate_data (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                                                                        defrag);                                  if (!ret) -                                        gf_log (this->name, GF_LOG_DEBUG, -                                                "migrate-data on %s failed: %s", -                                                entry_loc.path, -                                                strerror (op_errno)); +                                        gf_msg_debug (this->name, 0, +                                                      "migrate-data on %s " +                                                      "failed: %s", +                                                      entry_loc.path, +                                                      strerror (op_errno));                                  else if (ret == 1)                                          continue;                                  else if (ret == -1)                                          goto out;                          } else if (ret > 0) { -                                gf_log (this->name, GF_LOG_ERROR, +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_MIGRATE_FILE_FAILED,                                          "migrate-data failed for %s",                                          entry_loc.path);                                  defrag->total_failures +=1; @@ -1502,7 +1598,7 @@ gf_defrag_fix_layout (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                          goto out;          } -        gf_log (this->name, GF_LOG_TRACE, "fix layout called on %s", loc->path); +        gf_msg_trace (this->name, 0, "fix layout called on %s", loc->path);          fd = fd_create (loc->inode, defrag->pid);          if (!fd) { @@ -1618,8 +1714,10 @@ gf_defrag_fix_layout (xlator_t *this, gf_defrag_info_t *defrag, loc_t *loc,                                                      fix_layout, migrate_data);                          if (ret) { -                                gf_log (this->name, GF_LOG_ERROR, "Fix layout " -                                        "failed for %s", entry_loc.path); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_LAYOUT_FIX_FAILED, +                                        "Fix layout failed for %s",  +                                        entry_loc.path);                                  defrag->total_failures++;                                  goto out;                          } @@ -1691,7 +1789,9 @@ gf_defrag_start_crawl (void *data)          ret = syncop_lookup (this, &loc, NULL, &iatt, NULL, &parent);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "look up on / failed"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_REBALANCE_START_FAILED, +                        "Failed to start rebalance: look up on / failed");                  ret = -1;                  goto out;          } @@ -1704,13 +1804,20 @@ gf_defrag_start_crawl (void *data)          ret = dict_set_str (fix_layout, GF_XATTR_FIX_LAYOUT_KEY, "yes");          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "Failed to set dict str"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_REBALANCE_START_FAILED, +                        "Failed to start rebalance:" +                        "Failed to set dictionary value: key = %s", +                        GF_XATTR_FIX_LAYOUT_KEY); +                  goto out;          }          ret = syncop_setxattr (this, &loc, fix_layout, 0);          if (ret) { -                gf_log (this->name, GF_LOG_ERROR, "fix layout on %s failed", +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_REBALANCE_FAILED, +                        "fix layout on %s failed",                          loc.path);                  defrag->total_failures++;                  ret = -1; @@ -1806,8 +1913,9 @@ gf_defrag_start (void *data)                              gf_defrag_done, frame, this);          if (ret) -                gf_log (this->name, GF_LOG_ERROR, "Could not create" -                        " task for rebalance"); +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_REBALANCE_START_FAILED, +                        "Could not create task for rebalance");  out:          return NULL;  } @@ -1903,9 +2011,11 @@ log:                  break;          } -        gf_log (THIS->name, GF_LOG_INFO, "Rebalance is %s. Time taken is %.2f " -                "secs", status, elapsed); -        gf_log (THIS->name, GF_LOG_INFO, "Files migrated: %"PRIu64", size: %" +        gf_msg (THIS->name, GF_LOG_INFO, 0, DHT_MSG_REBALANCE_STATUS, +                "Rebalance is %s. Time taken is %.2f secs", +                status, elapsed); +        gf_msg (THIS->name, GF_LOG_INFO, 0, DHT_MSG_REBALANCE_STATUS, +                "Files migrated: %"PRIu64", size: %"                  PRIu64", lookups: %"PRIu64", failures: %"PRIu64", skipped: "                  "%"PRIu64, files, size, lookup, failures, skipped); @@ -1927,13 +2037,14 @@ gf_defrag_stop (gf_defrag_info_t *defrag, gf_defrag_status_t status,                  goto out;          } -        gf_log ("", GF_LOG_INFO, "Received stop command on rebalance"); +        gf_msg ("", GF_LOG_INFO, 0, DHT_MSG_REBALANCE_STOPPED, +                "Received stop command on rebalance");          defrag->defrag_status = status;          if (output)                  gf_defrag_status_get (defrag, output);          ret = 0;  out: -        gf_log ("", GF_LOG_DEBUG, "Returning %d", ret); +        gf_msg_debug ("", 0, "Returning %d", ret);          return ret;  } diff --git a/xlators/cluster/dht/src/dht-rename.c b/xlators/cluster/dht/src/dht-rename.c index 925538cc80c..9b440a7690b 100644 --- a/xlators/cluster/dht/src/dht-rename.c +++ b/xlators/cluster/dht/src/dht-rename.c @@ -32,17 +32,21 @@ dht_rename_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_local_t  *local = NULL;          int           this_call_cnt = 0;          call_frame_t *prev = NULL; +        char          gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          prev = cookie; +          if (op_ret == -1) {                  /* TODO: undo the damage */ +                uuid_unparse(local->loc.inode->gfid, gfid); -                gf_log (this->name, GF_LOG_INFO, -                        "rename %s -> %s on %s failed (%s)", +                gf_msg (this->name, GF_LOG_INFO, op_errno, +                        DHT_MSG_RENAME_FAILED, +                        "Rename %s -> %s on %s failed, (gfid = %s)",                          local->loc.path, local->loc2.path, -                        prev->this->name, strerror (op_errno)); +                        prev->this->name, gfid);                  local->op_ret   = op_ret;                  local->op_errno = op_errno; @@ -96,18 +100,23 @@ dht_rename_hashed_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          int           call_cnt = 0;          call_frame_t *prev = NULL;          int           i = 0; +        char          gfid[GF_UUID_BUF_SIZE] = {0};          conf = this->private;          local = frame->local;          prev = cookie; +          if (op_ret == -1) {                  /* TODO: undo the damage */ -                gf_log (this->name, GF_LOG_INFO, -                        "rename %s -> %s on %s failed (%s)", +                uuid_unparse(local->loc.inode->gfid, gfid); + +                gf_msg (this->name, GF_LOG_INFO, op_errno, +                        DHT_MSG_RENAME_FAILED, +                        "rename %s -> %s on %s failed, (gfid = %s) ",                          local->loc.path, local->loc2.path, -                        prev->this->name, strerror (op_errno)); +                        prev->this->name, gfid );                  local->op_ret   = op_ret;                  local->op_errno = op_errno; @@ -200,9 +209,9 @@ dht_rename_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          prev  = cookie;          if (op_ret > 2) { -                gf_log (this->name, GF_LOG_TRACE, -                        "readdir on %s for %s returned %d entries", -                        prev->this->name, local->loc.path, op_ret); +                gf_msg_trace (this->name, 0, +                              "readdir on %s for %s returned %d entries", +                              prev->this->name, local->loc.path, op_ret);                  local->op_ret = -1;                  local->op_errno = ENOTEMPTY;          } @@ -224,16 +233,19 @@ dht_rename_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          dht_local_t  *local = NULL;          int           this_call_cnt = -1;          call_frame_t *prev = NULL; - +        char          gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          prev  = cookie; +          if (op_ret == -1) { -                gf_log (this->name, GF_LOG_INFO, -                        "opendir on %s for %s failed (%s)", -                        prev->this->name, local->loc.path, -                        strerror (op_errno)); + +                uuid_unparse(local->loc.inode->gfid, gfid); +                gf_msg (this->name, GF_LOG_INFO, op_errno, +                        DHT_MSG_OPENDIR_FAILED, +                        "opendir on %s for %s failed,(gfid = %s) ", +                        prev->this->name, local->loc.path, gfid);                  goto err;          } @@ -270,8 +282,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)", +                        gf_msg (this->name, GF_LOG_INFO, 0, +                                DHT_MSG_RENAME_FAILED, +                                "Rename dir failed: subvolume down (%s)",                                  conf->subvolumes[i]->name);                          op_errno = ENOTCONN;                          goto err; @@ -315,8 +328,11 @@ err:                  }                                                              \                  tmp = dict_set_str (xattr, GLUSTERFS_INTERNAL_FOP_KEY, "yes"); \                  if (tmp) {                                                     \ -                        gf_log (this->name, GF_LOG_ERROR, "Failed to set"      \ -                                " internal dict key for %s", local->loc.path); \ +                        gf_msg (this->name, GF_LOG_ERROR, 0,                   \ +                                DHT_MSG_DICT_SET_FAILED,                       \ +                                "Failed to set dictionary value: key = %s,"    \ +                                " path = %s", GLUSTERFS_INTERNAL_FOP_KEY,      \ +                                 local->loc.path);                             \                  }                                                              \          }while (0) @@ -330,8 +346,11 @@ err:                  tmp = dict_set_str (xattr, GLUSTERFS_MARKER_DONT_ACCOUNT_KEY,  \                                      "yes");                                    \                  if (tmp) {                                                     \ -                        gf_log (this->name, GF_LOG_ERROR, "Failed to set"      \ -                                " marker dont account key for %s", local->loc.path); \ +                        gf_msg (this->name, GF_LOG_ERROR, 0,                    \ +                                DHT_MSG_DICT_SET_FAILED,                       \ +                                "Failed to set dictionary value: key = %s,"    \ +                                " path = %s",GLUSTERFS_MARKER_DONT_ACCOUNT_KEY, \ +                                local->loc.path);                             \                  }                                                              \          }while (0) @@ -376,9 +395,10 @@ 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_WARNING, -                        "%s: unlink on %s failed (%s)", -                        local->loc.path, prev->this->name, strerror (op_errno)); +                gf_msg (this->name, GF_LOG_WARNING, op_errno, +                        DHT_MSG_UNLINK_FAILED, +                        "%s: Rename: unlink on %s failed ", +                        local->loc.path, prev->this->name);          }          WIPE (&local->preoldparent); @@ -406,6 +426,7 @@ dht_rename_cleanup (call_frame_t *frame)          xlator_t    *dst_cached = NULL;          int          call_cnt = 0;          dict_t      *xattr      = NULL; +        char         gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          this  = frame->this; @@ -431,12 +452,15 @@ dht_rename_cleanup (call_frame_t *frame)          DHT_MARK_FOP_INTERNAL (xattr); +        uuid_unparse(local->loc.inode->gfid, gfid); +          if (dst_hashed != src_hashed && dst_hashed != src_cached) {                  dict_t *xattr_new = NULL; -                gf_log (this->name, GF_LOG_TRACE, -                        "unlinking linkfile %s @ %s => %s", -                        local->loc.path, dst_hashed->name, src_cached->name); +                gf_msg_trace (this->name, 0, +                              "unlinking linkfile %s @ %s => %s, (gfid = %s)", +                              local->loc.path, dst_hashed->name,  +                              src_cached->name, gfid);                  xattr_new = dict_copy_with_ref (xattr, NULL); @@ -454,9 +478,10 @@ dht_rename_cleanup (call_frame_t *frame)          if (src_cached != dst_hashed) {                  dict_t *xattr_new = NULL; -                gf_log (this->name, GF_LOG_TRACE, -                        "unlinking link %s => %s (%s)", local->loc.path, -                        local->loc2.path, src_cached->name); +                gf_msg_trace (this->name, 0, +                              "unlinking link %s => %s (%s), (gfid = %s)",  +                              local->loc.path, local->loc2.path,  +                              src_cached->name, gfid);                  xattr_new = dict_copy_with_ref (xattr, NULL); @@ -552,9 +577,11 @@ dht_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          if (local->linked == _gf_true)                  FRAME_SU_UNDO (frame, dht_local_t);          if (op_ret == -1) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: rename on %s failed (%s)", local->loc.path, -                        prev->this->name, strerror (op_errno)); +                gf_msg (this->name, GF_LOG_WARNING, op_errno, +                        DHT_MSG_RENAME_FAILED, +                        "%s: Rename on %s failed, (gfid = %s) ",  +                        local->loc.path, prev->this->name, +                        local->loc.inode? uuid_utoa(local->loc.inode->gfid):"");                  local->op_ret   = op_ret;                  local->op_errno = op_errno;                  goto cleanup; @@ -630,9 +657,9 @@ err:                  xattr_new = dict_copy_with_ref (xattr, NULL); -                gf_log (this->name, GF_LOG_TRACE, -                        "deleting old src datafile %s @ %s", -                        local->loc.path, src_cached->name); +                gf_msg_trace (this->name, 0, +                              "deleting old src datafile %s @ %s", +                              local->loc.path, src_cached->name);                  if (uuid_compare (local->loc.pargfid,                                    local->loc2.pargfid) == 0) { @@ -652,9 +679,9 @@ err:                  xattr_new = dict_copy_with_ref (xattr, NULL); -                gf_log (this->name, GF_LOG_TRACE, -                        "deleting old src linkfile %s @ %s", -                        local->loc.path, src_hashed->name); +                gf_msg_trace (this->name, 0, +                              "deleting old src linkfile %s @ %s", +                              local->loc.path, src_hashed->name);                  DHT_MARKER_DONT_ACCOUNT(xattr_new); @@ -669,9 +696,9 @@ err:          if (dst_cached              && (dst_cached != dst_hashed)              && (dst_cached != src_cached)) { -                gf_log (this->name, GF_LOG_TRACE, -                        "deleting old dst datafile %s @ %s", -                        local->loc2.path, dst_cached->name); +                gf_msg_trace (this->name, 0, +                              "deleting old dst datafile %s @ %s", +                              local->loc2.path, dst_cached->name);                  STACK_WIND (frame, dht_rename_unlink_cbk,                              dst_cached, dst_cached->fops->unlink, @@ -713,7 +740,6 @@ dht_do_rename (call_frame_t *frame)          xlator_t    *rename_subvol = NULL;          dict_t      *dict          = NULL; -          local = frame->local;          this  = frame->this; @@ -730,9 +756,9 @@ dht_do_rename (call_frame_t *frame)                  DHT_MARKER_DONT_ACCOUNT(dict);          } -        gf_log (this->name, GF_LOG_TRACE, -                "renaming %s => %s (%s)", -                local->loc.path, local->loc2.path, rename_subvol->name); +        gf_msg_trace (this->name, 0, +                      "renaming %s => %s (%s)", +                      local->loc.path, local->loc2.path, rename_subvol->name);          if (local->linked == _gf_true)                  FRAME_SU_DO (frame, dht_local_t); @@ -760,9 +786,9 @@ dht_rename_links_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          prev = cookie;          if (op_ret == -1) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "link/file on %s failed (%s)", -                        prev->this->name, strerror (op_errno)); +                gf_msg_debug (this->name, 0, +                              "link/file on %s failed (%s)", +                              prev->this->name, strerror (op_errno));                  local->op_ret   = -1;                  if (op_errno != ENOENT)                          local->op_errno = op_errno; @@ -802,10 +828,10 @@ dht_rename_unlink_links_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  	prev = cookie;  	if ((op_ret == -1) && (op_errno != ENOENT)) { -		gf_log (this->name, GF_LOG_DEBUG, -			"unlink of %s on %s failed (%s)", -			local->loc2.path, prev->this->name, -                        strerror (op_errno)); +		gf_msg_debug (this->name, 0, +		              "unlink of %s on %s failed (%s)", +			      local->loc2.path, prev->this->name, +                              strerror (op_errno));  		local->op_ret   = -1;  		local->op_errno = op_errno;  	} @@ -855,9 +881,9 @@ dht_rename_create_links (call_frame_t *frame)                  xattr_new = dict_copy_with_ref (xattr, NULL); -		gf_log (this->name, GF_LOG_TRACE, -			"unlinking dst linkfile %s @ %s", -			local->loc2.path, dst_hashed->name); +		gf_msg_trace (this->name, 0, +		              "unlinking dst linkfile %s @ %s", +			      local->loc2.path, dst_hashed->name);                  DHT_MARKER_DONT_ACCOUNT(xattr_new); @@ -878,9 +904,11 @@ dht_rename_create_links (call_frame_t *frame)          local->call_cnt = call_cnt;          if (dst_hashed != src_hashed && dst_hashed != src_cached) { -                gf_log (this->name, GF_LOG_TRACE, -                        "linkfile %s @ %s => %s", -                        local->loc.path, dst_hashed->name, src_cached->name); +                gf_msg_trace (this->name, 0, +                              "linkfile %s @ %s => %s", +                              local->loc.path, dst_hashed->name, +                              src_cached->name); +                  memcpy (local->gfid, local->loc.inode->gfid, 16);  		dht_linkfile_create (frame, dht_rename_links_cbk, this,  				     src_cached, dst_hashed, &local->loc); @@ -891,9 +919,9 @@ dht_rename_create_links (call_frame_t *frame)                  xattr_new = dict_copy_with_ref (xattr, NULL); -		gf_log (this->name, GF_LOG_TRACE, -			"link %s => %s (%s)", local->loc.path, -			local->loc2.path, src_cached->name); +		gf_msg_trace (this->name, 0, +                              "link %s => %s (%s)", local->loc.path, +			      local->loc2.path, src_cached->name);                  if (uuid_compare (local->loc.pargfid,                                    local->loc2.pargfid) == 0) {                          DHT_MARKER_DONT_ACCOUNT(xattr_new); @@ -929,34 +957,41 @@ dht_rename (call_frame_t *frame, xlator_t *this,          int          op_errno = -1;          int          ret = -1;          dht_local_t *local = NULL; - +        char         gfid[GF_UUID_BUF_SIZE] = {0};          VALIDATE_OR_GOTO (frame, err);          VALIDATE_OR_GOTO (this, err);          VALIDATE_OR_GOTO (oldloc, err);          VALIDATE_OR_GOTO (newloc, err); +        uuid_unparse(oldloc->inode->gfid, gfid); +          src_hashed = dht_subvol_get_hashed (this, oldloc);          if (!src_hashed) { -                gf_log (this->name, GF_LOG_INFO, -                        "no subvolume in layout for path=%s", -                        oldloc->path); +                gf_msg (this->name, GF_LOG_INFO, 0, +                        DHT_MSG_RENAME_FAILED, +                        "No hashed subvolume in layout for path=%s," +                        "(gfid = %s)", oldloc->path, gfid);                  op_errno = EINVAL;                  goto err;          }          src_cached = dht_subvol_get_cached (this, oldloc->inode);          if (!src_cached) { -                gf_log (this->name, GF_LOG_INFO, -                        "no cached subvolume for path=%s", oldloc->path); +                gf_msg (this->name, GF_LOG_INFO, 0, +                        DHT_MSG_RENAME_FAILED, +                        "No cached subvolume for path = %s," +                        "(gfid = %s)", oldloc->path, gfid); +                  op_errno = EINVAL;                  goto err;          }          dst_hashed = dht_subvol_get_hashed (this, newloc);          if (!dst_hashed) { -                gf_log (this->name, GF_LOG_INFO, -                        "no subvolume in layout for path=%s", +                gf_msg (this->name, GF_LOG_INFO, 0, +                        DHT_MSG_RENAME_FAILED, +                        "No hashed subvolume in layout for path=%s",                          newloc->path);                  op_errno = EINVAL;                  goto err; @@ -985,11 +1020,12 @@ dht_rename (call_frame_t *frame, xlator_t *this,          local->dst_hashed = dst_hashed;          local->dst_cached = dst_cached; -        gf_log (this->name, GF_LOG_TRACE, -                "renaming %s (hash=%s/cache=%s) => %s (hash=%s/cache=%s)", -                oldloc->path, src_hashed->name, src_cached->name, -                newloc->path, dst_hashed->name, -                dst_cached ? dst_cached->name : "<nul>"); +        gf_msg_trace (this->name, 0, +                      "renaming %s (hash=%s/cache=%s) => %s" +                      " (hash=%s/cache=%s)", +                      oldloc->path, src_hashed->name, src_cached->name, +                      newloc->path, dst_hashed->name, +                      dst_cached ? dst_cached->name : "<nul>");          if (IA_ISDIR (oldloc->inode->ia_type)) {                  dht_rename_dir (frame, this); diff --git a/xlators/cluster/dht/src/dht-selfheal.c b/xlators/cluster/dht/src/dht-selfheal.c index 0e65275442a..84b0f2f4679 100644 --- a/xlators/cluster/dht/src/dht-selfheal.c +++ b/xlators/cluster/dht/src/dht-selfheal.c @@ -17,16 +17,18 @@  #include "glusterfs.h"  #include "xlator.h"  #include "dht-common.h" +#include "dht-messages.h"  #include "glusterfs-acl.h"  #define DHT_SET_LAYOUT_RANGE(layout,i,srt,chunk,cnt,path)    do {       \                  layout->list[i].start = srt;                            \                  layout->list[i].stop  = srt + chunk - 1;                \                                                                          \ -                gf_log (this->name, GF_LOG_TRACE,                       \ -                        "gave fix: %u - %u on %s for %s",               \ -                        layout->list[i].start, layout->list[i].stop,    \ -                        layout->list[i].xlator->name, path);            \ +                gf_msg_trace (this->name, 0,                       \ +                              "gave fix: %u - %u on %s for %s",         \ +                              layout->list[i].start,                    \ +                              layout->list[i].stop,                     \ +                              layout->list[i].xlator->name, path);      \          } while (0)  #define DHT_RESET_LAYOUT_RANGE(layout)    do {                          \ @@ -128,6 +130,7 @@ dht_selfheal_dir_xattr_persubvol (call_frame_t *frame, loc_t *loc,          dht_local_t       *local = NULL;          dht_conf_t        *conf = NULL;          data_t            *data = NULL; +        char              gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          if (req_subvol) @@ -149,27 +152,33 @@ dht_selfheal_dir_xattr_persubvol (call_frame_t *frame, loc_t *loc,                  goto err;          } +        uuid_unparse(loc->inode->gfid, gfid); +          ret = dht_disk_layout_extract (this, layout, i, &disk_layout);          if (ret == -1) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: (subvol %s) failed to extract disk layout", -                        loc->path, subvol->name); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DIR_SELFHEAL_XATTR_FAILED, +                        "Directory self heal xattr failed:" +                        " %s: (subvol %s) Failed to extract disk layout," +                        " gfid = %s", loc->path, subvol->name, gfid);                  goto err;          }          ret = dict_set_bin (xattr, conf->xattr_name, disk_layout, 4 * 4);          if (ret == -1) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%s: (subvol %s) failed to set xattr dictionary", -                        loc->path, subvol->name); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DIR_SELFHEAL_XATTR_FAILED, +                        "Directory self heal xattr failed:" +                        "%s: (subvol %s) Failed to set xattr dictionary," +                        " gfid = %s", loc->path, subvol->name, gfid);                  goto err;          }          disk_layout = NULL; -        gf_log (this->name, GF_LOG_TRACE, -                "setting hash range %u - %u (type %d) on subvolume %s for %s", -                layout->list[i].start, layout->list[i].stop, -                layout->type, subvol->name, loc->path); +        gf_msg_trace (this->name, 0, +                      "setting hash range %u - %u (type %d) on subvolume %s" +                      " for %s", layout->list[i].start, layout->list[i].stop, +                      layout->type, subvol->name, loc->path);          dict_ref (xattr);          if (local->xattr) { @@ -177,8 +186,11 @@ dht_selfheal_dir_xattr_persubvol (call_frame_t *frame, loc_t *loc,                  if (data) {                          ret = dict_add (xattr, QUOTA_LIMIT_KEY, data);                          if (ret) { -                                gf_log (this->name, GF_LOG_ERROR, "Failed to " -                                        "set quota limit key on %s",loc->path); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_DICT_SET_FAILED, +                                        "%s: Failed to set dictionary value:" +                                        " key = %s", +                                        loc->path, QUOTA_LIMIT_KEY);                          }                  }          } @@ -218,8 +230,9 @@ dht_fix_dir_xattr (call_frame_t *frame, loc_t *loc, dht_layout_t *layout)          this = frame->this;          conf = this->private; -        gf_log (this->name, GF_LOG_DEBUG, -                "writing the new range for all subvolumes"); +        gf_msg_debug (this->name, 0, +                      "%s: Writing the new range for all subvolumes", +                      loc->path);          local->call_cnt = count = conf->subvolume_cnt; @@ -283,9 +296,9 @@ dht_selfheal_dir_xattr (call_frame_t *frame, loc_t *loc, dht_layout_t *layout)                          missing_xattr++;                  }          } -        gf_log (this->name, GF_LOG_TRACE, -                "%d subvolumes missing xattr for %s", -                missing_xattr, loc->path); +        gf_msg_trace (this->name, 0, +                      "%d subvolumes missing xattr for %s", +                      missing_xattr, loc->path);          if (missing_xattr == 0) {                  dht_selfheal_dir_finish (frame, this, 0); @@ -369,9 +382,10 @@ dht_selfheal_dir_setattr (call_frame_t *frame, loc_t *loc, struct iatt *stbuf,          local->call_cnt = missing_attr;          for (i = 0; i < layout->cnt; i++) {                  if (layout->list[i].err == -1) { -                        gf_log (this->name, GF_LOG_TRACE, -                                "setattr for %s on subvol %s", -                                loc->path, layout->list[i].xlator->name); +                        gf_msg_trace (this->name, 0, +                                      "%s: setattr on subvol %s, gfid = %s", +                                      loc->path, layout->list[i].xlator->name, +                                      uuid_utoa(loc->gfid));                          STACK_WIND (frame, dht_selfheal_dir_setattr_cbk,                                      layout->list[i].xlator, @@ -396,7 +410,7 @@ dht_selfheal_dir_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          xlator_t      *subvol = NULL;          int            i = 0;          int            this_call_cnt = 0; - +        char           gfid[GF_UUID_BUF_SIZE] = {0};          local  = frame->local;          layout = local->selfheal.layout; @@ -413,10 +427,13 @@ dht_selfheal_dir_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,          }          if (op_ret) { -                gf_log (this->name, ((op_errno == EEXIST) ? GF_LOG_DEBUG : + +                uuid_unparse(local->loc.gfid, gfid); +                gf_msg (this->name, ((op_errno == EEXIST) ? 0 :                                       GF_LOG_WARNING), -                        "selfhealing directory %s failed: %s", -                        local->loc.path, strerror (op_errno)); +                        op_errno, DHT_MSG_DIR_SELFHEAL_FAILED, +                        "Directory selfheal failed: path = %s, gfid = %s", +                        local->loc.path, gfid );                  goto out;          } @@ -451,25 +468,29 @@ dht_selfheal_dir_mkdir_setacl (dict_t *xattr, dict_t *dict)          acl_default = dict_get (xattr, POSIX_ACL_DEFAULT_XATTR);          if (!acl_default) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "ACL_DEFAULT xattr not present"); +                gf_msg_debug (this->name, 0, +                              "ACL_DEFAULT xattr not present");                  goto cont;          }          ret = dict_set (dict, POSIX_ACL_DEFAULT_XATTR, acl_default);          if (ret) -                gf_log (this->name, GF_LOG_WARNING, -                        "Could not set ACL_DEFAULT xattr"); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "Failed to set dictionary value.key = %s", +                        POSIX_ACL_DEFAULT_XATTR);  cont:          acl_access = dict_get (xattr, POSIX_ACL_ACCESS_XATTR);          if (!acl_access) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "ACL_ACCESS xattr not present"); +                gf_msg_debug (this->name, 0, +                              "ACL_ACCESS xattr not present");                  goto out;          }          ret = dict_set (dict, POSIX_ACL_ACCESS_XATTR, acl_access);          if (ret) -                gf_log (this->name, GF_LOG_WARNING, -                        "Could not set ACL_ACCESS xattr"); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DICT_SET_FAILED, +                        "Failed to set dictionary value.key = %s", +                        POSIX_ACL_ACCESS_XATTR);  out:          return; @@ -507,8 +528,10 @@ 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_WARNING, -                                "%s: failed to set gfid in dict", loc->path); +                        gf_msg (this->name, GF_LOG_WARNING, 0, +                                DHT_MSG_DICT_SET_FAILED, +                                "%s: Failed to set dictionary value:" +                                " key = gfid-req", loc->path);          } else if (local->params) {                  /* Send the dictionary from higher layers directly */                  dict = dict_ref (local->params); @@ -523,9 +546,9 @@ 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_DEBUG, -                                "creating directory %s on subvol %s", -                                loc->path, layout->list[i].xlator->name); +                        gf_msg_debug (this->name, 0, +                                      "Creating directory %s on subvol %s", +                                      loc->path, layout->list[i].xlator->name);                          STACK_WIND (frame, dht_selfheal_dir_mkdir_cbk,                                      layout->list[i].xlator, @@ -742,8 +765,8 @@ dht_fix_layout_of_directory (call_frame_t *frame, loc_t *loc,          local = frame->local;          if (layout->type == DHT_HASH_TYPE_DM_USER) { -                gf_log (THIS->name, GF_LOG_DEBUG, "leaving %s alone", -                        loc->path); +                gf_msg_debug (THIS->name, 0, "leaving %s alone", +                              loc->path);                  goto done;          } @@ -756,7 +779,9 @@ dht_fix_layout_of_directory (call_frame_t *frame, loc_t *loc,                                      &subvol_down, NULL, NULL);          if (subvol_down || (ret == -1)) { -                gf_log (this->name, GF_LOG_WARNING, "%u subvolume(s) are down" +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_LAYOUT_FIX_FAILED, +                        "Layout fix failed: %u subvolume(s) are down"                          ". Skipping fix layout.", subvol_down);                  GF_FREE (new_layout);                  return NULL; @@ -931,10 +956,14 @@ dht_selfheal_directory (call_frame_t *frame, dht_selfheal_dir_cbk_t dir_cbk,          uint32_t     misc     = 0;          int          ret      = 0;          xlator_t    *this     = NULL; +        char         gfid[GF_UUID_BUF_SIZE] = {0};          local = frame->local;          this = frame->this; +        uuid_unparse(loc->gfid, gfid); + +          dht_layout_anomalies (this, loc, layout,                                &local->selfheal.hole_cnt,                                &local->selfheal.overlaps_cnt, @@ -948,15 +977,22 @@ 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_WARNING, -                        "%d subvolumes down -- not fixing", down); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DIR_SELFHEAL_FAILED, +                        "Directory selfheal failed: %d subvolumes down." +                        "Not fixing. path = %s, gfid = %s", +                        down, loc->path, gfid);                  ret = 0;                  goto sorry_no_fix;          }          if (misc) { -                gf_log (this->name, GF_LOG_WARNING, -                        "%d subvolumes have unrecoverable errors", misc); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DIR_SELFHEAL_FAILED, +                        "Directory selfheal failed : %d subvolumes " +                        "have unrecoverable errors. path = %s, gfid = %s", +                        misc, loc->path, gfid); +                  ret = 0;                  goto sorry_no_fix;          } @@ -965,8 +1001,11 @@ 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_WARNING, -                        "not able to form layout for the directory"); +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_DIR_SELFHEAL_FAILED, +                        "Directory selfheal failed: " +                        "Unable to form layout for directory %s", +                        loc->path);                  goto sorry_no_fix;          } @@ -1010,6 +1049,8 @@ dht_dir_attr_heal (void *data)          int              call_cnt = 0;          int              ret   = -1;          int              i     = 0; +        char         gfid[GF_UUID_BUF_SIZE] = {0}; +          GF_VALIDATE_OR_GOTO ("dht", data, out); @@ -1031,9 +1072,13 @@ dht_dir_attr_heal (void *data)                                        (GF_SET_ATTR_UID | GF_SET_ATTR_GID),                                        NULL, NULL);                  if (ret) { -                        gf_log ("dht", GF_LOG_ERROR, "Failed to set uid/gid on" -                                " %s on %s subvol (%s)", local->loc.path, -                                subvol->name, strerror (-ret)); +                        uuid_unparse(local->loc.gfid, gfid); + +                        gf_msg ("dht", GF_LOG_ERROR, -ret, +                                DHT_MSG_DIR_ATTR_HEAL_FAILED, +                                "Directory attr heal failed. Failed to set" +                                " uid/gid on path %s on subvol %s, gfid = %s ", +                                local->loc.path, subvol->name, gfid);                  }          }  out: diff --git a/xlators/cluster/dht/src/dht-shared.c b/xlators/cluster/dht/src/dht-shared.c index f2e7467abe7..3d1d635b4ed 100644 --- a/xlators/cluster/dht/src/dht-shared.c +++ b/xlators/cluster/dht/src/dht-shared.c @@ -18,6 +18,8 @@  #include "statedump.h"  #include "dht-common.h" +#include "dht-messages.h" +  /* TODO:     - use volumename in xattr instead of "dht" @@ -357,21 +359,23 @@ dht_reconfigure (xlator_t *this, dict_t *options)                  /* If option is not "auto", other options _should_ be boolean*/                  if (strcasecmp (temp_str, "auto")) {                          if (!gf_string2boolean (temp_str, &search_unhashed)) { -                                gf_log(this->name, GF_LOG_DEBUG, "Reconfigure:" -                                       " lookup-unhashed reconfigured (%s)", -                                       temp_str); +                                gf_msg_debug(this->name, 0, "Reconfigure: " +                                             "lookup-unhashed reconfigured(%s)", +                                             temp_str);                                  conf->search_unhashed = search_unhashed;                          } else { -                                gf_log(this->name, GF_LOG_ERROR, "Reconfigure:" -                                       " lookup-unhashed should be boolean," +                                gf_msg(this->name, GF_LOG_ERROR, 0, +                                       DHT_MSG_INVALID_OPTION, +                                       "Invalid option: Reconfigure: " +                                       "lookup-unhashed should be boolean,"                                         " not (%s), defaulting to (%d)",                                         temp_str, conf->search_unhashed);                                  ret = -1;                                  goto out;                          }                  } else { -                        gf_log(this->name, GF_LOG_DEBUG, "Reconfigure:" -                               " lookup-unhashed reconfigured auto "); +                        gf_msg_debug(this->name, 0, "Reconfigure:" +                                     " lookup-unhashed reconfigured auto ");                          conf->search_unhashed = GF_DHT_LOOKUP_UNHASHED_AUTO;                  }          } @@ -453,8 +457,10 @@ gf_defrag_pattern_list_fill (xlator_t *this, gf_defrag_info_t *defrag, char *dat                                  pattern = "*";                          }                  } else if (gf_string2bytesize_uint64 (num, &pattern_list->size) != 0) { -                        gf_log (this->name, GF_LOG_ERROR, -                                "invalid number format \"%s\"", num); +                        gf_msg (this->name, GF_LOG_ERROR, 0,  +                                DHT_MSG_INVALID_OPTION, +                                "Invalid option. Defrag pattern:" +                                " Invalid number format \"%s\"", num);                          goto out;                  }                  memcpy (pattern_list->path_pattern, pattern, strlen (dup_str)); @@ -499,13 +505,15 @@ dht_init (xlator_t *this)          GF_VALIDATE_OR_GOTO ("dht", this, err);          if (!this->children) { -                gf_log (this->name, GF_LOG_CRITICAL, +                gf_msg (this->name, GF_LOG_CRITICAL, 0, +                        DHT_MSG_INVALID_CONFIGURATION,                          "Distribute needs more than one subvolume");                  return -1;          }          if (!this->parents) { -                gf_log (this->name, GF_LOG_WARNING, +                gf_msg (this->name, GF_LOG_WARNING, 0, +                        DHT_MSG_INVALID_CONFIGURATION,                          "dangling volume. check volfile");          } @@ -530,14 +538,17 @@ dht_init (xlator_t *this)                  ret = dict_get_str (this->options, "node-uuid", &node_uuid);                  if (ret) { -                        gf_log (this->name, GF_LOG_ERROR, "node-uuid not " -                                "specified"); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_INVALID_CONFIGURATION, +                                "Invalid volume configuration: " +                                "node-uuid not specified");                          goto err;                  }                  if (uuid_parse (node_uuid, defrag->node_uuid)) { -                        gf_log (this->name, GF_LOG_ERROR, "Cannot parse " -                                "glusterd node uuid"); +                        gf_msg (this->name, GF_LOG_ERROR, 0, +                                DHT_MSG_INVALID_OPTION, "Invalid option:" +                                " Cannot parse glusterd node uuid");                          goto err;                  } @@ -581,8 +592,12 @@ dht_init (xlator_t *this)                      == 0) {                          if (gf_defrag_pattern_list_fill (this, defrag, temp_str)                              == -1) { -                                gf_log (this->name, GF_LOG_ERROR, "Cannot parse" -                                        " rebalance-filter (%s)", temp_str); +                                gf_msg (this->name, GF_LOG_ERROR, 0, +                                        DHT_MSG_INVALID_OPTION,  +                                        "Invalid option:" +                                        " Cannot parse rebalance-filter (%s)",  +                                        temp_str); +                                  goto err;                          }                  } @@ -621,7 +636,9 @@ dht_init (xlator_t *this)          this->local_pool = mem_pool_new (dht_local_t, 512);          if (!this->local_pool) { -                gf_log (this->name, GF_LOG_ERROR, +                gf_msg (this->name, GF_LOG_ERROR, 0, +                        DHT_MSG_INIT_FAILED, +                        " DHT initialisation failed. "                          "failed to create local_t's memory pool");                  goto err;          } diff --git a/xlators/cluster/dht/src/nufa.c b/xlators/cluster/dht/src/nufa.c index e934acdf00a..f188a5479f4 100644 --- a/xlators/cluster/dht/src/nufa.c +++ b/xlators/cluster/dht/src/nufa.c @@ -62,9 +62,9 @@ nufa_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  /* non-directory and not a linkfile */                  ret = dht_layout_preset (this, prev->this, inode);                  if (ret < 0) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "could not set pre-set layout for subvol %s", -                                prev->this->name); +                        gf_msg_debug (this->name, 0, +                                      "could not set pre-set layout for subvol" +                                      " %s", prev->this->name);                          op_ret   = -1;                          op_errno = EINVAL;                          goto err; @@ -102,9 +102,9 @@ nufa_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  subvol = dht_linkfile_subvol (this, inode, stbuf, xattr);                  if (!subvol) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "linkfile not having link subvolume. path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "linkfile has no link subvolume. path=%s", +                                      loc->path);                          dht_lookup_everywhere (frame, this, loc);                          return 0;                  } @@ -118,9 +118,9 @@ nufa_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          if (!local->hashed_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        local->loc.path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              local->loc.path);                  local->op_errno = ENOENT;                  dht_lookup_everywhere (frame, this, loc);                  return 0; @@ -180,17 +180,17 @@ nufa_lookup (call_frame_t *frame, xlator_t *this,          if (is_revalidate (loc)) {                  layout = local->layout;                  if (!layout) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "revalidate without cache. path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "revalidate lookup without cache. " +                                      "path=%s", loc->path);                          op_errno = EINVAL;                          goto err;                  }                  if (layout->gen && (layout->gen < conf->gen)) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "incomplete layout failure for path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "incomplete layout failure for path=%s", +                                      loc->path);                          dht_layout_unref (this, local->layout);                          goto do_fresh_lookup;                  } @@ -312,9 +312,9 @@ nufa_create (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          } @@ -339,8 +339,8 @@ nufa_create (call_frame_t *frame, xlator_t *this,                  return 0;          } -        gf_log (this->name, GF_LOG_TRACE, -                "creating %s on %s", loc->path, subvol->name); +        gf_msg_trace (this->name, 0, +                      "creating %s on %s", loc->path, subvol->name);          STACK_WIND (frame, dht_create_cbk,                      subvol, subvol->fops->create, @@ -416,9 +416,9 @@ nufa_mknod (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          } @@ -446,8 +446,8 @@ nufa_mknod (call_frame_t *frame, xlator_t *this,                  return 0;          } -        gf_log (this->name, GF_LOG_TRACE, -                "creating %s on %s", loc->path, subvol->name); +        gf_msg_trace (this->name, 0, +                      "creating %s on %s", loc->path, subvol->name);          STACK_WIND_COOKIE (frame, dht_newfile_cbk, (void *)subvol, subvol,                             subvol->fops->mknod, loc, mode, rdev, umask, diff --git a/xlators/cluster/dht/src/switch.c b/xlators/cluster/dht/src/switch.c index 2717ce97541..0071dfa265d 100644 --- a/xlators/cluster/dht/src/switch.c +++ b/xlators/cluster/dht/src/switch.c @@ -146,9 +146,10 @@ switch_local_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, -                                "could not set pre-set layout for subvol %s", -                                prev->this->name); +                        gf_msg_debug (this->name, 0, +                                      "could not set pre-set layout " +                                      "for subvol %s", +                                      prev->this->name);                          op_ret   = -1;                          op_errno = EINVAL;                          goto err; @@ -171,8 +172,8 @@ switch_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 :("); +                        gf_msg_debug (this->name, 0, +                                      "memory allocation failed :(");                          goto err;                  } @@ -188,9 +189,9 @@ switch_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,                  subvol = dht_linkfile_subvol (this, inode, stbuf, xattr);                  if (!subvol) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "linkfile not having link subvolume. path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "linkfile has no link subvolume.path=%s", +                                      loc->path);                          dht_lookup_everywhere (frame, this, loc);                          return 0;                  } @@ -204,9 +205,9 @@ switch_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,  out:          if (!local->hashed_subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        local->loc.path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              local->loc.path);                  local->op_errno = ENOENT;                  dht_lookup_everywhere (frame, this, loc);                  return 0; @@ -268,17 +269,17 @@ switch_lookup (call_frame_t *frame, xlator_t *this,          if (is_revalidate (loc)) {                  layout = local->layout;                  if (!layout) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "revalidate without cache. path=%s", -                                loc->path); +                        gf_msg_debug(this->name, 0, +                                     "revalidate lookup without cache. path=%s", +                                     loc->path);                          op_errno = EINVAL;                          goto err;                  }                  if (layout->gen && (layout->gen < conf->gen)) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "incomplete layout failure for path=%s", -                                loc->path); +                        gf_msg_debug (this->name, 0, +                                      "incomplete layout failure for path=%s", +                                      loc->path);                          dht_layout_unref (this, local->layout);                          goto do_fresh_lookup;                  } @@ -325,10 +326,10 @@ switch_lookup (call_frame_t *frame, xlator_t *this,                                  conf->link_xattr_name);                  if (!hashed_subvol) { -                        gf_log (this->name, GF_LOG_DEBUG, -                                "no subvolume in layout for path=%s, " -                                "checking on all the subvols to see if " -                                "it is a directory", loc->path); +                        gf_msg_debug (this->name, 0, +                                      "no subvolume in layout for path=%s, " +                                      "checking on all the subvols to see if " +                                      "it is a directory", loc->path);                          call_cnt        = conf->subvolume_cnt;                          local->call_cnt = call_cnt; @@ -427,9 +428,9 @@ switch_create (call_frame_t *frame, xlator_t *this,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          } @@ -452,8 +453,8 @@ switch_create (call_frame_t *frame, xlator_t *this,                  return 0;          } -        gf_log (this->name, GF_LOG_TRACE, -                "creating %s on %s", loc->path, subvol->name); +        gf_msg_trace (this->name, 0, +                      "creating %s on %s", loc->path, subvol->name);          STACK_WIND (frame, dht_create_cbk,                      subvol, subvol->fops->create, @@ -526,9 +527,9 @@ switch_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,          subvol = dht_subvol_get_hashed (this, loc);          if (!subvol) { -                gf_log (this->name, GF_LOG_DEBUG, -                        "no subvolume in layout for path=%s", -                        loc->path); +                gf_msg_debug (this->name, 0, +                              "no subvolume in layout for path=%s", +                              loc->path);                  op_errno = ENOENT;                  goto err;          } @@ -555,8 +556,8 @@ switch_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,                  return 0;          } -        gf_log (this->name, GF_LOG_TRACE, -                "creating %s on %s", loc->path, subvol->name); +        gf_msg_trace (this->name, 0, +                      "creating %s on %s", loc->path, subvol->name);          STACK_WIND_COOKIE (frame, dht_newfile_cbk, (void *)subvol, subvol,                             subvol->fops->mknod, loc, mode, rdev, umask, @@ -701,13 +702,13 @@ set_switch_pattern (xlator_t *this, dht_conf_t *conf,                                  for (index = 0; index < child_count; index++) {                                          if (strcmp (switch_buf_array[index].xl->name,                                                      child) == 0) { -                                                gf_log ("switch", GF_LOG_DEBUG, -                                                        "'%s' pattern will be " -                                                        "scheduled to \"%s\"", -                                                        switch_opt->path_pattern, child); +                                                gf_msg_debug ("switch", 0, +                                                              "'%s' pattern will be " +                                                              "scheduled to \"%s\"", +                                                              switch_opt->path_pattern, child);                                                  /*                                                    if (switch_buf_array[index-1].considered) { -                                                  gf_log ("switch", GF_LOG_DEBUG, +                                                  gf_msg_debug ("switch", 0,                                                    "ambiguity found, exiting");                                                    return -1;                                                    } @@ -777,10 +778,11 @@ set_switch_pattern (xlator_t *this, dht_conf_t *conf,                          /* check for considered flag */                          if (switch_buf_array[index].considered)                                  continue; -                        gf_log ("switch", GF_LOG_DEBUG, -                                "'%s' pattern will be scheduled to \"%s\"", -                                switch_opt->path_pattern, -                                switch_buf_array[index].xl->name); +                        gf_msg_debug ("switch", 0, "'%s'" +                                      " pattern will be scheduled to \"%s\"", +                                      switch_opt->path_pattern, +                                      switch_buf_array[index].xl->name); +                          switch_opt->array[flag].xl =                                  switch_buf_array[index].xl;                          switch_buf_array[index].considered = 1;  | 
