diff options
Diffstat (limited to 'heal/src/glfs-heal.c')
-rw-r--r-- | heal/src/glfs-heal.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/heal/src/glfs-heal.c b/heal/src/glfs-heal.c index 3ebf79eee14..20372316edd 100644 --- a/heal/src/glfs-heal.c +++ b/heal/src/glfs-heal.c @@ -773,7 +773,8 @@ static int glfsh_process_entries(xlator_t *xl, fd_t *fd, gf_dirent_t *entries, uint64_t *offset, num_entries_t *num_entries, print_status glfsh_print_status, - gf_boolean_t ignore_dirty, glfsh_fail_mode_t mode) + gf_boolean_t ignore_dirty, glfsh_fail_mode_t mode, + dict_t *xattr_req) { gf_dirent_t *entry = NULL; gf_dirent_t *tmp = NULL; @@ -805,7 +806,7 @@ glfsh_process_entries(xlator_t *xl, fd_t *fd, gf_dirent_t *entries, gf_uuid_parse(entry->d_name, gfid); gf_uuid_copy(loc.gfid, gfid); - ret = syncop_getxattr(this, &loc, &dict, GF_HEAL_INFO, NULL, NULL); + ret = syncop_getxattr(this, &loc, &dict, GF_HEAL_INFO, xattr_req, NULL); if (ret) { if ((mode != GLFSH_MODE_CONTINUE_ON_ERROR) && (ret == -ENOTCONN)) goto out; @@ -874,19 +875,19 @@ glfsh_crawl_directory(glfs_t *fs, xlator_t *top_subvol, loc_t *rootloc, if (heal_op == GF_SHD_OP_INDEX_SUMMARY) { ret = glfsh_process_entries(readdir_xl, fd, &entries, &offset, num_entries, glfsh_print_heal_status, - ignore, mode); + ignore, mode, xattr_req); if (ret < 0) goto out; } else if (heal_op == GF_SHD_OP_SPLIT_BRAIN_FILES) { ret = glfsh_process_entries(readdir_xl, fd, &entries, &offset, num_entries, glfsh_print_spb_status, - ignore, mode); + ignore, mode, xattr_req); if (ret < 0) goto out; } else if (heal_op == GF_SHD_OP_HEAL_SUMMARY) { ret = glfsh_process_entries(readdir_xl, fd, &entries, &offset, num_entries, glfsh_print_summary_status, - ignore, mode); + ignore, mode, xattr_req); if (ret < 0) goto out; } else if (heal_op == GF_SHD_OP_SBRAIN_HEAL_FROM_BRICK) { @@ -895,7 +896,7 @@ glfsh_crawl_directory(glfs_t *fs, xlator_t *top_subvol, loc_t *rootloc, } else if (heal_op == GF_SHD_OP_GRANULAR_ENTRY_HEAL_ENABLE) { ret = glfsh_process_entries(readdir_xl, fd, &entries, &offset, num_entries, glfsh_heal_status_boolean, - ignore, mode); + ignore, mode, xattr_req); if (ret < 0) goto out; } @@ -949,6 +950,10 @@ glfsh_print_pending_heals_type(glfs_t *fs, xlator_t *top_subvol, loc_t *rootloc, int32_t op_errno = 0; gf_boolean_t ignore = _gf_false; + ret = dict_set_str(xattr_req, "index-vgfid", vgfid); + if (ret) + return ret; + if (!strcmp(vgfid, GF_XATTROP_DIRTY_GFID)) ignore = _gf_true; |