summaryrefslogtreecommitdiffstats
path: root/xlators/storage/posix/src
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/storage/posix/src')
-rw-r--r--xlators/storage/posix/src/posix-helpers.c3
-rw-r--r--xlators/storage/posix/src/posix.c12
2 files changed, 12 insertions, 3 deletions
diff --git a/xlators/storage/posix/src/posix-helpers.c b/xlators/storage/posix/src/posix-helpers.c
index f3d6d6c3da7..e1bd5b127fd 100644
--- a/xlators/storage/posix/src/posix-helpers.c
+++ b/xlators/storage/posix/src/posix-helpers.c
@@ -409,6 +409,9 @@ _posix_xattr_get_set (dict_t *xattr_req, char *key, data_t *data,
} else if (fnmatch (marker_contri_key, key, 0) == 0) {
ret = _posix_get_marker_quota_contributions (filler, key);
+ } else if (strcmp(key, CTR_REQUEST_LINK_COUNT_XDATA) == 0) {
+ ret = dict_set (filler->xattr,
+ CTR_REQUEST_LINK_COUNT_XDATA, data);
} else {
ret = _posix_xattr_get_set_from_backend (filler, key);
}
diff --git a/xlators/storage/posix/src/posix.c b/xlators/storage/posix/src/posix.c
index 337f9b95fa2..8cbe2c5a02e 100644
--- a/xlators/storage/posix/src/posix.c
+++ b/xlators/storage/posix/src/posix.c
@@ -1652,11 +1652,12 @@ posix_unlink (call_frame_t *frame, xlator_t *this,
if (!unwind_dict) {
op_ret = 0;
gf_log (this->name, GF_LOG_WARNING,
- "Failed to creating unwind_dict");
+ "Memory allocation failure while "
+ "creating unwind_dict");
goto out;
}
- /* Even if unwind_dict fails to set CTR_RESPONSE_LINK_COUNT_XDATA we will
- * not mark the FOP unsuccessful
+ /* Even if unwind_dict fails to set CTR_RESPONSE_LINK_COUNT_XDATA we
+ * will not mark the FOP unsuccessful
* because this dict is only used by CTR Xlator to clear
* all records if link count == 0*/
op_ret = dict_set_uint32 (unwind_dict, CTR_RESPONSE_LINK_COUNT_XDATA,
@@ -1678,6 +1679,11 @@ out:
close (fd);
}
+ /* unref unwind_dict*/
+ if (unwind_dict) {
+ dict_unref (unwind_dict);
+ }
+
return 0;
}