diff options
-rwxr-xr-x | libglusterfsclient/src/libglusterfsclient.c | 361 |
1 files changed, 318 insertions, 43 deletions
diff --git a/libglusterfsclient/src/libglusterfsclient.c b/libglusterfsclient/src/libglusterfsclient.c index a5b3c414229..1dfe33327b8 100755 --- a/libglusterfsclient/src/libglusterfsclient.c +++ b/libglusterfsclient/src/libglusterfsclient.c @@ -243,12 +243,15 @@ libgf_dcache_invalidate (fd_t *fd) fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; return; } - if (!fd_ctx->dcache) + if (!fd_ctx->dcache) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No dcache present"); return; + } if (!list_empty (&fd_ctx->dcache->entries.list)) gf_dirent_free (&fd_ctx->dcache->entries); @@ -278,12 +281,14 @@ libgf_dcache_update (libglusterfs_client_ctx_t *ctx, fd_t *fd, fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } /* dcache is not enabled. */ if (!fd_ctx->dcache) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No dcache present"); op_ret = 0; goto out; } @@ -321,18 +326,23 @@ libgf_dcache_readdir (libglusterfs_client_ctx_t *ctx, fd_t *fd, fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } - if (!fd_ctx->dcache) + if (!fd_ctx->dcache) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No dcache present"); goto out; + } /* We've either run out of entries in the cache * or the cache is empty. */ - if (!fd_ctx->dcache->next) + if (!fd_ctx->dcache->next) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "No entries present"); goto out; + } /* The dirent list is created as a circular linked list * so this check is needed to ensure, we dont start @@ -340,8 +350,10 @@ libgf_dcache_readdir (libglusterfs_client_ctx_t *ctx, fd_t *fd, * If we're reached this situation, the cache is exhausted * and we'll need to pre-fetch more entries to continue serving. */ - if (fd_ctx->dcache->next == &fd_ctx->dcache->entries) + if (fd_ctx->dcache->next == &fd_ctx->dcache->entries) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Entries exhausted"); goto out; + } /* During sequential reading we generally expect that the offset * requested is the same as the offset we served in the previous call @@ -359,8 +371,13 @@ libgf_dcache_readdir (libglusterfs_client_ctx_t *ctx, fd_t *fd, * zero because that is what we returned for the last dirent * of the previous readdir block. */ - if ((*offset != 0) && (fd_ctx->dcache->prev_off == 0)) + if ((*offset != 0) && (fd_ctx->dcache->prev_off == 0)) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Entries" + " exhausted"); cachevalid = 1; + } else + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Dcache" + " invalidated previously"); } else cachevalid = 1; @@ -481,6 +498,8 @@ libgf_update_iattr_cache (inode_t *inode, int flags, struct stat *buf) inode_ctx = libgf_get_inode_ctx (inode); if (!inode_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No inode context" + " present"); errno = EINVAL; op_ret = -1; goto out; @@ -492,10 +511,13 @@ libgf_update_iattr_cache (inode_t *inode, int flags, struct stat *buf) * lock. */ current = time (NULL); - if (flags & LIBGF_UPDATE_LOOKUP) + if (flags & LIBGF_UPDATE_LOOKUP) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Updating lookup"); inode_ctx->previous_lookup_time = current; + } if (flags & LIBGF_UPDATE_STAT) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Updating stat"); /* Update the cached stat struct only if a new * stat buf is given. @@ -524,16 +546,25 @@ libgf_invalidate_iattr_cache (inode_t *inode, int flags) return -1; ictx = libgf_get_inode_ctx (inode); - if (!ictx) + if (!ictx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No inode context" + " present"); return -1; + } pthread_mutex_lock (&ictx->lock); { - if (flags & LIBGF_INVALIDATE_LOOKUP) + if (flags & LIBGF_INVALIDATE_LOOKUP) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Invalidating" + " lookup"); ictx->previous_lookup_time = 0; + } - if (flags & LIBGF_INVALIDATE_STAT) + if (flags & LIBGF_INVALIDATE_STAT) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Invalidating" + " stat"); ictx->previous_stat_time = 0; + } } pthread_mutex_unlock (&ictx->lock); @@ -560,9 +591,11 @@ libgf_is_iattr_cache_valid (libglusterfs_client_ctx_t *ctx, inode_t *inode, { current = time (NULL); if (flags & LIBGF_VALIDATE_LOOKUP) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Checking lookup"); prev = inode_ctx->previous_lookup_time; timeout = ctx->lookup_timeout; } else { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Checking stat"); prev = inode_ctx->previous_stat_time; timeout = ctx->stat_timeout; } @@ -576,23 +609,29 @@ libgf_is_iattr_cache_valid (libglusterfs_client_ctx_t *ctx, inode_t *inode, */ if (prev == 0) { cache_valid = 0; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Cache Invalid"); goto iattr_unlock_out; } /* Cache infinitely */ if (timeout == (time_t)-1) { cache_valid = 1; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Caching On and " + "valid"); goto iattr_unlock_out; } /* Disable caching completely */ if (timeout == 0) { cache_valid = 0; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Cache disabled"); goto iattr_unlock_out; } - if ((prev > 0) && (timeout >= (current - prev))) + if ((prev > 0) && (timeout >= (current - prev))) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Cache valid"); cache_valid = 1; + } if (flags & LIBGF_VALIDATE_LOOKUP) goto iattr_unlock_out; @@ -764,8 +803,10 @@ libgf_resolve_path_light (char *path) mypath = strdup (path); len = strlen (mypath); respath = calloc (strlen(mypath) + 1, sizeof (char)); - if (respath == NULL) + if (respath == NULL) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR,"Memory allocation failed"); goto out; + } /* The path only contains a / or a //, so simply add a / * and return. @@ -800,6 +841,8 @@ libgf_resolve_path_light (char *path) tok = strtok_r (NULL, "/", &saveptr); } + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Path: %s, Resolved Path: %s", + path, respath); out: if (mypath) free (mypath); @@ -1310,8 +1353,10 @@ libgf_init_vmpentry (char *vmp, glusterfs_handle_t *vmphandle) int appendslash = 0; entry = CALLOC (1, sizeof (struct vmp_entry)); - if (!entry) + if (!entry) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR,"Memory allocation failed"); return NULL; + } vmplen = strlen (vmp); if (vmp[vmplen - 1] != '/') { @@ -1326,6 +1371,7 @@ libgf_init_vmpentry (char *vmp, glusterfs_handle_t *vmphandle) entry->vmplen = vmplen; entry->handle = vmphandle; INIT_LIST_HEAD (&entry->list); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "New VMP entry: %s", vmp); return entry; } @@ -1427,6 +1473,8 @@ _libgf_vmp_search_entry (char *path, int searchtype) int maxcount = 0; int vmpcompcount = 0; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "VMP Search: path %s, type: %s", + path, (searchtype == LIBGF_VMP_EXACT)?"Exact":"LongestPrefix"); if (vmplist.entries == 0) { gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Virtual Mount Point " "list is empty."); @@ -1436,6 +1484,8 @@ _libgf_vmp_search_entry (char *path, int searchtype) list_for_each_entry(entry, &vmplist.list, list) { vmpcompcount = libgf_count_path_components (entry->vmp); matchcount = libgf_vmp_entry_match (entry, path); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Candidate VMP: %s," + " Matchcount: %d", entry->vmp, matchcount); if ((matchcount > maxcount) && (matchcount == vmpcompcount)) { maxcount = matchcount; maxentry = entry; @@ -1450,8 +1500,14 @@ _libgf_vmp_search_entry (char *path, int searchtype) if ((searchtype == LIBGF_VMP_EXACT) && (maxentry)) { vmpcompcount = libgf_count_path_components (maxentry->vmp); matchcount = libgf_count_path_components (path); - if (vmpcompcount != matchcount) + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Exact Check: VMP: %s," + " CompCount: %d, Path: %s, CompCount: %d", + maxentry->vmp, vmpcompcount, path, matchcount); + if (vmpcompcount != matchcount) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "No Match"); maxentry = NULL; + } else + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Matches!"); } out: @@ -1519,13 +1575,18 @@ libgf_vmp_map_ghandle (char *vmp, glusterfs_handle_t *vmphandle) int ret = -1; struct vmp_entry *vmpentry = NULL; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "New Entry: %s", vmp); vmpentry = libgf_init_vmpentry (vmp, vmphandle); - if (!vmpentry) + if (!vmpentry) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Failed to create VMP" + " entry"); goto out; + } pthread_mutex_lock (&vmplock); { if (vmplist.entries == 0) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Empty list"); INIT_LIST_HEAD (&vmplist.list); } @@ -1566,14 +1627,17 @@ glusterfs_mount (char *vmp, glusterfs_init_params_t *ipars) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ipars, out); vmp_resolved = libgf_resolve_path_light (vmp); - if (!vmp_resolved) + if (!vmp_resolved) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } vmphash = (dev_t)ReallySimpleHash (vmp, strlen (vmp)); pthread_mutex_lock (&mountlock); { vmp_entry = libgf_vmp_search_exact_entry (vmp); if (vmp_entry) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Entry exists"); ret = 0; goto unlock; } @@ -1581,11 +1645,15 @@ glusterfs_mount (char *vmp, glusterfs_init_params_t *ipars) vmphandle = glusterfs_init (ipars, vmphash); if (!vmphandle) { errno = EINVAL; + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "GlusterFS context" + " init failed"); goto unlock; } ret = libgf_vmp_map_ghandle (vmp_resolved, vmphandle); if (ret == -1) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Failed to map new" + " handle: %s", vmp); glusterfs_fini (vmphandle); } } @@ -1652,8 +1720,10 @@ glusterfs_umount (char *vmp) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, vmp, out); vmp_resolved = libgf_resolve_path_light (vmp); - if (!vmp_resolved) + if (!vmp_resolved) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } ret = libgf_umount (vmp_resolved); @@ -1890,7 +1960,9 @@ glusterfs_glh_get (glusterfs_handle_t handle, const char *path, void *buf, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, size %ld", path, size); if (size < 0) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Invalid size"); errno = EINVAL; goto out; } @@ -1901,8 +1973,10 @@ glusterfs_glh_get (glusterfs_handle_t handle, const char *path, void *buf, } loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 0); if (op_ret == -1) { @@ -1978,6 +2052,7 @@ glusterfs_get (const char *path, void *buf, size_t size, struct stat *stbuf) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, stbuf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, size %ld", path, size); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -2290,8 +2365,12 @@ __glusterfs_glh_getxattr (glusterfs_handle_t handle, const char *path, GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, name, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, name %s, size %ld," + " op %d", path, name, size, whichop); if (name[0] == '\0') { errno = EINVAL; + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Invalid argument: Name" + " not NULL terminated"); goto out; } @@ -2302,12 +2381,16 @@ __glusterfs_glh_getxattr (glusterfs_handle_t handle, const char *path, if (size < 0) { errno = EINVAL; + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Invalid argument: size is" + " less than zero"); goto out; } pathres = libgf_resolve_path_light ((char *)path); - if (!pathres) + if (!pathres) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } loc.path = strdup (pathres); op_ret = libgf_client_path_lookup (&loc, ctx, 1); @@ -2344,8 +2427,10 @@ __glusterfs_glh_getxattr (glusterfs_handle_t handle, const char *path, libgf_client_loc_wipe (&loc); op_ret = libgf_realpath_loc_fill (ctx, (char *)pathres, &loc); - if (op_ret == -1) + if (op_ret == -1) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "realpath failed"); goto out; + } do_getx: op_ret = libgf_client_lookup (ctx, &loc, NULL, &dict, xattr_req); @@ -2416,6 +2501,8 @@ glusterfs_getxattr (const char *path, const char *name, void *value, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, name, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, value, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, name %s, size %ld", + path, name, size); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -2444,6 +2531,8 @@ glusterfs_lgetxattr (const char *path, const char *name, void *value, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, name, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, value, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, name %s, size %ld", + path, name, size); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -2493,6 +2582,8 @@ libgf_client_open (libglusterfs_client_ctx_t *ctx, op_ret = stub->args.open_cbk.op_ret; errno = stub->args.open_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "open: path %s, status: %d, errno" + " %d", loc->path, op_ret, errno); if (op_ret != -1) fd_bind (fd); call_stub_destroy (stub); @@ -2534,6 +2625,8 @@ libgf_client_creat (libglusterfs_client_ctx_t *ctx, op_ret = stub->args.create_cbk.op_ret; errno = stub->args.create_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Create: path %s, status: %d," + " errno: %d", loc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -2588,6 +2681,8 @@ libgf_client_opendir (libglusterfs_client_ctx_t *ctx, op_ret = stub->args.opendir_cbk.op_ret; errno = stub->args.opendir_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "opendir: path %s, status %d," + " errno %d", loc->path, op_ret, errno); if (op_ret != -1) fd_bind (fd); @@ -2614,8 +2709,10 @@ glusterfs_glh_open (glusterfs_handle_t handle, const char *path, int flags,...) GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); pathres = libgf_resolve_path_light ((char *)path); - if (!pathres) + if (!pathres) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } loc.path = strdup (pathres); op_ret = libgf_client_path_lookup (&loc, ctx, 1); @@ -2694,6 +2791,8 @@ op_over: if (!libgf_get_fd_ctx (fd)) { if (!libgf_alloc_fd_ctx (ctx, fd)) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Failed to" + " allocate fd context"); errno = EINVAL; op_ret = -1; goto out; @@ -2733,6 +2832,7 @@ glusterfs_open (const char *path, int flags, ...) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -2756,6 +2856,7 @@ out: glusterfs_file_t glusterfs_glh_creat (glusterfs_handle_t handle, const char *path, mode_t mode) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); return glusterfs_glh_open (handle, path, (O_CREAT | O_WRONLY | O_TRUNC), mode); } @@ -2769,6 +2870,7 @@ glusterfs_creat (const char *path, mode_t mode) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -2831,6 +2933,7 @@ glusterfs_close (glusterfs_file_t fd) fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -2885,6 +2988,8 @@ libgf_client_setxattr (libglusterfs_client_ctx_t *ctx, op_ret = stub->args.setxattr_cbk.op_ret; errno = stub->args.setxattr_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "path %s, name %s, status %d," + "errno %d", loc->path, name, op_ret, errno); dict_unref (dict); call_stub_destroy (stub); return op_ret; @@ -2909,14 +3014,18 @@ __glusterfs_glh_setxattr (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "path %s, name %s, op %d", path + ,name, whichop); if (size <= 0) { errno = EINVAL; goto out; } pathres = libgf_resolve_path_light ((char *)path); - if (!pathres) + if (!pathres) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } loc.path = strdup (pathres); op_ret = libgf_client_path_lookup (&loc, ctx, 1); @@ -2993,6 +3102,7 @@ glusterfs_setxattr (const char *path, const char *name, const void *value, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, name, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, value, out); + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "path %s, name %s", path, name); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -3021,6 +3131,7 @@ glusterfs_lsetxattr (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, name, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, value, out); + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "path %s, name %s", path, name); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -3076,6 +3187,8 @@ libgf_client_fsetxattr (libglusterfs_client_ctx_t *ctx, op_ret = stub->args.fsetxattr_cbk.op_ret; errno = stub->args.fsetxattr_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "name %s, status %d, errno %d", + name, op_ret, errno); dict_unref (dict); call_stub_destroy (stub); @@ -3104,6 +3217,8 @@ glusterfs_fsetxattr (glusterfs_file_t fd, } if (size <= 0) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Invalid argument: size is" + " less than or equal to zero"); errno = EINVAL; op_ret = -1; goto out; @@ -3111,6 +3226,7 @@ glusterfs_fsetxattr (glusterfs_file_t fd, fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; op_ret = -1; goto out; @@ -3182,6 +3298,8 @@ libgf_client_fgetxattr (libglusterfs_client_ctx_t *ctx, } } + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "name %s, status %d, errno %d", + name, op_ret, errno); call_stub_destroy (stub); return op_ret; } @@ -3197,6 +3315,7 @@ glusterfs_fgetxattr (glusterfs_file_t fd, fd_t *__fd = (fd_t *)fd; libglusterfs_client_fd_ctx_t *fd_ctx = NULL; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "name %s", name); if (size < 0) { errno = EINVAL; op_ret = -1; @@ -3208,6 +3327,7 @@ glusterfs_fgetxattr (glusterfs_file_t fd, fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; op_ret = -1; goto out; @@ -3326,6 +3446,8 @@ libgf_client_read (libglusterfs_client_ctx_t *ctx, libgf_invalidate_iattr_cache (fd->inode, LIBGF_INVALIDATE_STAT); } + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "size %ld, offset %ld", size, + offset); call_stub_destroy (stub); return op_ret; } @@ -3357,6 +3479,7 @@ glusterfs_read (glusterfs_file_t fd, fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -3895,6 +4018,7 @@ glusterfs_readdir_r (glusterfs_dir_t dirfd, struct dirent *entry, fd_ctx = libgf_get_fd_ctx (dirfd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "fd context not present"); errno = EBADF; goto out; } @@ -3905,10 +4029,13 @@ glusterfs_readdir_r (glusterfs_dir_t dirfd, struct dirent *entry, offset = fd_ctx->offset; dirp = &fd_ctx->dirp; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "offset %ld", offset); memset (dirp, 0, sizeof (struct dirent)); op_ret = libgf_client_readdir (ctx, (fd_t *)dirfd, dirp, &offset); if (op_ret <= 0) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "readdir failed:" + " %s", strerror (errno)); if (result && (op_ret == 0)) { *result = NULL; } else if (op_ret < 0){ @@ -3925,6 +4052,8 @@ glusterfs_readdir_r (glusterfs_dir_t dirfd, struct dirent *entry, memcpy (entry, dirp, sizeof (*entry)); } + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "new offset %ld, entry %s", + offset, entry->d_name); op_ret = 0; } unlock: @@ -3946,6 +4075,7 @@ glusterfs_readdir (glusterfs_dir_t dirfd) fd_ctx = libgf_get_fd_ctx (dirfd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "fd context not present"); errno = EBADF; goto out; } @@ -3958,10 +4088,13 @@ glusterfs_readdir (glusterfs_dir_t dirfd) } pthread_mutex_unlock (&fd_ctx->lock); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "offset %ld", offset); memset (dirp, 0, sizeof (struct dirent)); op_ret = libgf_client_readdir (ctx, (fd_t *)dirfd, dirp, &offset); if (op_ret <= 0) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "readdir failed: %s", + strerror (errno)); dirp = NULL; goto out; } @@ -3972,6 +4105,8 @@ glusterfs_readdir (glusterfs_dir_t dirfd) } pthread_mutex_unlock (&fd_ctx->lock); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "new offset %ld, entry %s", + offset, dirp->d_name); out: return dirp; } @@ -4367,6 +4502,7 @@ libgf_client_stat (libglusterfs_client_ctx_t *ctx, if (libgf_is_iattr_cache_valid (ctx, loc->inode, &cachedbuf, LIBGF_VALIDATE_STAT)) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Cache will be used"); if (stbuf) memcpy (stbuf, &cachedbuf, sizeof (struct stat)); goto out; @@ -4380,6 +4516,8 @@ libgf_client_stat (libglusterfs_client_ctx_t *ctx, if (stbuf) *stbuf = stub->args.stat_cbk.buf; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); libgf_update_iattr_cache (loc->inode, LIBGF_UPDATE_STAT, &stub->args.stat_cbk.buf); call_stub_destroy (stub); @@ -4441,9 +4579,13 @@ __glusterfs_stat (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, op: %d", path, + whichstat); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -4516,6 +4658,7 @@ glusterfs_stat (const char *path, struct stat *buf) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -4546,6 +4689,7 @@ glusterfs_lstat (const char *path, struct stat *buf) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -4595,6 +4739,7 @@ libgf_client_fstat (libglusterfs_client_ctx_t *ctx, LIBGF_VALIDATE_STAT)) { if (buf) memcpy (buf, &cachedbuf, sizeof (struct stat)); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Cache will be used"); goto out; } @@ -4606,6 +4751,8 @@ libgf_client_fstat (libglusterfs_client_ctx_t *ctx, if (buf) *buf = stub->args.fstat_cbk.buf; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "status %d, errno %d", op_ret, + errno); libgf_update_iattr_cache (fd->inode, LIBGF_UPDATE_STAT, &stub->args.fstat_cbk.buf); call_stub_destroy (stub); @@ -4624,6 +4771,7 @@ glusterfs_fstat (glusterfs_file_t fd, struct stat *buf) fd_ctx = libgf_get_fd_ctx (fd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; op_ret = -1; goto out; @@ -4671,6 +4819,8 @@ libgf_client_mkdir (libglusterfs_client_ctx_t *ctx, op_ret = stub->args.mkdir_cbk.op_ret; errno = stub->args.mkdir_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -4704,8 +4854,10 @@ glusterfs_glh_mkdir (glusterfs_handle_t handle, const char *path, mode_t mode) GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == 0) { @@ -4757,6 +4909,7 @@ glusterfs_mkdir (const char *path, mode_t mode) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -4795,6 +4948,8 @@ libgf_client_rmdir (libglusterfs_client_ctx_t *ctx, loc_t *loc) op_ret = stub->args.rmdir_cbk.op_ret; errno = stub->args.rmdir_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); if (stub->args.rmdir_cbk.op_ret != 0) goto out; @@ -4818,8 +4973,10 @@ glusterfs_glh_rmdir (glusterfs_handle_t handle, const char *path) GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -4865,6 +5022,7 @@ glusterfs_rmdir (const char *path) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -4904,6 +5062,8 @@ libgf_client_chmod (libglusterfs_client_ctx_t *ctx, loc_t * loc, mode_t mode) op_ret = stub->args.chmod_cbk.op_ret; errno = stub->args.chmod_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -4927,8 +5087,11 @@ glusterfs_glh_chmod (glusterfs_handle_t handle, const char *path, mode_t mode) GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } + op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) goto out; @@ -4960,6 +5123,7 @@ glusterfs_chmod (const char *path, mode_t mode) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -5000,6 +5164,8 @@ libgf_client_chown (libglusterfs_client_ctx_t *ctx, loc_t *loc, uid_t uid, op_ret = stub->args.chown_cbk.op_ret; errno = stub->args.chown_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -5028,9 +5194,12 @@ __glusterfs_chown (glusterfs_handle_t handle, const char *path, uid_t owner, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, op %d", path, whichop); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) @@ -5082,6 +5251,7 @@ glusterfs_chown (const char *path, uid_t owner, gid_t group) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -5112,6 +5282,7 @@ glusterfs_lchown (const char *path, uid_t owner, gid_t group) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -5138,9 +5309,12 @@ glusterfs_glh_opendir (glusterfs_handle_t handle, const char *path) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) @@ -5171,6 +5345,8 @@ glusterfs_glh_opendir (glusterfs_handle_t handle, const char *path) if (!libgf_get_fd_ctx (dirfd)) { if (!(libgf_alloc_fd_ctx (ctx, dirfd))) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Context " + "allocation failed"); op_ret = -1; errno = EINVAL; goto out; @@ -5198,6 +5374,7 @@ glusterfs_opendir (const char *path) glusterfs_dir_t dir = NULL; GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { @@ -5261,6 +5438,8 @@ libgf_client_fchmod (libglusterfs_client_ctx_t *ctx, fd_t *fd, mode_t mode) op_ret = stub->args.fchmod_cbk.op_ret; errno = stub->args.fchmod_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "status %d, errno %d", op_ret, + errno); if (op_ret == -1) goto out; @@ -5282,6 +5461,7 @@ glusterfs_fchmod (glusterfs_file_t fd, mode_t mode) fdctx = libgf_get_fd_ctx (fd); if (!fdctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "No fd context present"); errno = EBADF; goto out; } @@ -5319,6 +5499,8 @@ libgf_client_fchown (libglusterfs_client_ctx_t *ctx, fd_t *fd, uid_t uid, op_ret = stub->args.fchown_cbk.op_ret; errno = stub->args.fchown_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "status %d, errno %d", op_ret, + errno); if (op_ret == -1) goto out; @@ -5340,6 +5522,7 @@ glusterfs_fchown (glusterfs_file_t fd, uid_t uid, gid_t gid) fdctx = libgf_get_fd_ctx (fd); if (!fd) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -5375,6 +5558,8 @@ libgf_client_fsync (libglusterfs_client_ctx_t *ctx, fd_t *fd) op_ret = stub->args.fsync_cbk.op_ret; errno = stub->args.fsync_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "status %d, errno %d", op_ret, + errno); call_stub_destroy (stub); return op_ret; @@ -5390,6 +5575,7 @@ glusterfs_fsync (glusterfs_file_t *fd) fdctx = libgf_get_fd_ctx ((fd_t *)fd); if (!fd) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -5470,6 +5656,7 @@ glusterfs_ftruncate (glusterfs_file_t fd, off_t length) fdctx = libgf_get_fd_ctx (fd); if (!fdctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -5509,6 +5696,8 @@ libgf_client_link (libglusterfs_client_ctx_t *ctx, loc_t *old, loc_t *new) op_ret = stub->args.link_cbk.op_ret; errno = stub->args.link_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "old %s, new %s, status %d," + " errno %d", old->path, new->path, op_ret, errno); if (op_ret == -1) goto out; @@ -5539,9 +5728,13 @@ glusterfs_glh_link (glusterfs_handle_t handle, const char *oldpath, GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, oldpath, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, newpath, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "old %s, new %s", oldpath, + newpath); old.path = libgf_resolve_path_light ((char *)oldpath); - if (!old.path) + if (!old.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&old, ctx, 1); if (op_ret == -1) { @@ -5564,8 +5757,10 @@ glusterfs_glh_link (glusterfs_handle_t handle, const char *oldpath, } new.path = libgf_resolve_path_light ((char *)newpath); - if (!new.path) + if (!new.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&new, ctx, 1); if (op_ret == 0) { @@ -5603,6 +5798,8 @@ glusterfs_link (const char *oldpath, const char *newpath) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, oldpath, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, newpath, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "old %s, new %s", oldpath, + newpath); oldentry = libgf_vmp_search_entry ((char *)oldpath); if (!oldentry) { errno = ENODEV; @@ -5662,6 +5859,8 @@ libgf_client_statvfs (libglusterfs_client_ctx_t *ctx, loc_t *loc, op_ret = stub->args.statfs_cbk.op_ret; errno = stub->args.statfs_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -5685,9 +5884,12 @@ glusterfs_glh_statfs (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -5753,6 +5955,7 @@ glusterfs_statfs (const char *path, struct statfs *buf) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -5779,9 +5982,12 @@ glusterfs_glh_statvfs (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { gf_log ("libglusterfsclient", GF_LOG_ERROR, @@ -5824,6 +6030,7 @@ glusterfs_statvfs (const char *path, struct statvfs *buf) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -5865,6 +6072,8 @@ libgf_client_rename (libglusterfs_client_ctx_t *ctx, loc_t *oldloc, op_ret = stub->args.rename_cbk.op_ret; errno = stub->args.rename_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "old %s, new %s, status %d, errno" + " %d", oldloc->path, newloc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -5895,9 +6104,13 @@ glusterfs_glh_rename (glusterfs_handle_t handle, const char *oldpath, GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, oldpath, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, newpath, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "old %s, new %s", oldpath, + newpath); oldloc.path = libgf_resolve_path_light ((char *)oldpath); - if (!oldloc.path) + if (!oldloc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&oldloc, ctx, 1); if (op_ret == -1) { @@ -5907,8 +6120,10 @@ glusterfs_glh_rename (glusterfs_handle_t handle, const char *oldpath, } newloc.path = libgf_resolve_path_light ((char *)newpath); - if (!newloc.path) + if (!newloc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&newloc, ctx, 1); @@ -5959,6 +6174,8 @@ glusterfs_rename (const char *oldpath, const char *newpath) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, oldpath, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, newpath, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Old %s, new %s", oldpath, + newpath); old = libgf_vmp_search_entry ((char *)oldpath); if (!old) { errno = ENODEV; @@ -6018,6 +6235,8 @@ libgf_client_utimens (libglusterfs_client_ctx_t *ctx, loc_t *loc, errno = stub->args.utimens_cbk.op_errno; stbuf = &stub->args.utimens_cbk.buf; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); if (op_ret == -1) goto out; @@ -6042,9 +6261,12 @@ glusterfs_glh_utimes (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -6086,6 +6308,7 @@ glusterfs_utimes (const char *path, const struct timeval times[2]) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -6113,9 +6336,12 @@ glusterfs_glh_utime (glusterfs_handle_t handle, const char *path, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -6159,6 +6385,7 @@ glusterfs_utime (const char *path, const struct utimbuf *buf) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -6203,6 +6430,8 @@ libgf_client_mknod (libglusterfs_client_ctx_t *ctx, loc_t *loc, mode_t mode, if (op_ret == -1) goto out; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, status %d, errno %d", + loc->path, op_ret, errno); inode = stub->args.mknod_cbk.inode; libgf_transform_devnum (ctx, &stub->args.mknod_cbk.buf); inode_link (inode, loc->parent, loc->name, &stub->args.mknod_cbk.buf); @@ -6231,9 +6460,12 @@ glusterfs_glh_mknod(glusterfs_handle_t handle, const char *path, mode_t mode, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == 0) { @@ -6279,6 +6511,7 @@ glusterfs_mknod(const char *pathname, mode_t mode, dev_t dev) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, pathname, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", pathname); entry = libgf_vmp_search_entry ((char *)pathname); if (!entry) { errno = ENODEV; @@ -6306,9 +6539,12 @@ glusterfs_glh_mkfifo (glusterfs_handle_t handle, const char *path, mode_t mode) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Failed to resolve name"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == 0) { @@ -6354,6 +6590,7 @@ glusterfs_mkfifo (const char *path, mode_t mode) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -6393,6 +6630,7 @@ libgf_client_unlink (libglusterfs_client_ctx_t *ctx, loc_t *loc) op_ret = stub->args.unlink_cbk.op_ret; errno = stub->args.unlink_cbk.op_errno; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", loc->path); if (op_ret == -1) goto out; @@ -6414,9 +6652,12 @@ glusterfs_glh_unlink (glusterfs_handle_t handle, const char *path) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -6454,6 +6695,7 @@ glusterfs_unlink (const char *path) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -6498,6 +6740,8 @@ libgf_client_symlink (libglusterfs_client_ctx_t *ctx, const char *linkpath, if (op_ret == -1) goto out; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "target: %s, link: %s, status %d" + " errno %d", linkpath, loc->path, op_ret, errno); inode = stub->args.symlink_cbk.inode; libgf_transform_devnum (ctx, &stub->args.symlink_cbk.buf); inode_link (inode, loc->parent, loc->name, @@ -6527,12 +6771,16 @@ glusterfs_glh_symlink (glusterfs_handle_t handle, const char *oldpath, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, newpath, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "target: %s, link: %s", oldpath, + newpath); /* Old path does not need to be interpreted or looked up */ oldloc.path = strdup (oldpath); newloc.path = libgf_resolve_path_light ((char *)newpath); - if (!newloc.path) + if (!newloc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&newloc, ctx, 1); if (op_ret == 0) { @@ -6586,6 +6834,8 @@ glusterfs_symlink (const char *oldpath, const char *newpath) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, oldpath, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, newpath, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "target: %s, link: %s", oldpath, + newpath); entry = libgf_vmp_search_entry ((char *)newpath); if (!entry) { errno = ENODEV; @@ -6633,7 +6883,11 @@ libgf_client_readlink (libglusterfs_client_ctx_t *ctx, loc_t *loc, char *buf, cpy_size = ((op_ret <= bufsize) ? op_ret : bufsize); memcpy (buf, stub->args.readlink_cbk.buf, cpy_size); op_ret = cpy_size; - } + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "link: %s, target: %s," + " status %d, errno %d", loc->path, buf, op_ret, errno); + } else + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "link: %s, status %d, " + "errno %d", loc->path, op_ret, errno); call_stub_destroy (stub); return op_ret; @@ -6651,6 +6905,7 @@ glusterfs_glh_readlink (glusterfs_handle_t handle, const char *path, char *buf, GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); if (bufsize < 0) { errno = EINVAL; goto out; @@ -6662,8 +6917,10 @@ glusterfs_glh_readlink (glusterfs_handle_t handle, const char *path, char *buf, } loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) { @@ -6703,6 +6960,7 @@ glusterfs_readlink (const char *path, char *buf, size_t bufsize) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, buf, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -6922,6 +7180,7 @@ glusterfs_realpath (const char *path, char *resolved_path) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); entry = libgf_vmp_search_entry ((char *)path); if (!entry) { errno = ENODEV; @@ -6940,6 +7199,8 @@ glusterfs_realpath (const char *path, char *resolved_path) strncpy (realp, entry->vmp, entry->vmplen-1); strcat (realp, res); strcpy (resolved_path, realp); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, resolved %s", path, + resolved_path); out: if (vpath) free (vpath); @@ -6958,9 +7219,12 @@ glusterfs_glh_remove (glusterfs_handle_t handle, const char *path) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, handle, out); GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path); loc.path = libgf_resolve_path_light ((char *)path); - if (!loc.path) + if (!loc.path) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "Path compaction failed"); goto out; + } op_ret = libgf_client_path_lookup (&loc, ctx, 1); if (op_ret == -1) @@ -6993,6 +7257,7 @@ glusterfs_remove(const char *pathname) GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, pathname, out); + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", pathname); entry = libgf_vmp_search_entry ((char *)pathname); if (!entry) { errno = ENODEV; @@ -7015,6 +7280,7 @@ glusterfs_rewinddir (glusterfs_dir_t dirfd) fd_ctx = libgf_get_fd_ctx ((fd_t *)dirfd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -7022,6 +7288,8 @@ glusterfs_rewinddir (glusterfs_dir_t dirfd) pthread_mutex_lock (&fd_ctx->lock); { fd_ctx->offset = 0; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Offset: %ld", + fd_ctx->offset); } pthread_mutex_unlock (&fd_ctx->lock); @@ -7035,12 +7303,16 @@ glusterfs_seekdir (glusterfs_dir_t dirfd, off_t offset) libglusterfs_client_fd_ctx_t *fd_ctx = NULL; fd_ctx = libgf_get_fd_ctx ((fd_t *)dirfd); - if (!fd_ctx) + if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); goto out; + } pthread_mutex_lock (&fd_ctx->lock); { fd_ctx->offset = offset; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Offset: %ld", + fd_ctx->offset); } pthread_mutex_unlock (&fd_ctx->lock); @@ -7056,6 +7328,7 @@ glusterfs_telldir (glusterfs_dir_t dirfd) fd_ctx = libgf_get_fd_ctx ((fd_t *)dirfd); if (!fd_ctx) { + gf_log (LIBGF_XL_NAME, GF_LOG_ERROR, "No fd context present"); errno = EBADF; goto out; } @@ -7063,6 +7336,8 @@ glusterfs_telldir (glusterfs_dir_t dirfd) pthread_mutex_lock (&fd_ctx->lock); { off = fd_ctx->offset; + gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "Offset: %ld", + fd_ctx->offset); } pthread_mutex_unlock (&fd_ctx->lock); |