diff options
author | Yaniv Kaul <ykaul@redhat.com> | 2018-09-13 16:03:23 +0300 |
---|---|---|
committer | Pranith Kumar Karampuri <pkarampu@redhat.com> | 2018-12-17 11:39:14 +0000 |
commit | 403c69d35827b6cbb430e97a797c318cca81e86e (patch) | |
tree | cd994bb5b8f133a1d8b1aa56d5c17deb3e91fae0 /xlators/cluster/afr/src/afr-transaction.c | |
parent | f0c46df09fe542d6a365adc0c544ba460598501c (diff) |
AFR xlator: use dict_{setn|getn|deln|get_int32n|set_int32n|set_strn}
In a previous patch (https://review.gluster.org/20769) we've
added the key length to be passed to dict_* funcs, to remove the need
to strlen() it. This patch moves some xlators to use it.
- In some cases, moved strlen() of the key length outside of locks,
which is usually a good thing. Please verify it's safe to do so.
- In some cases, created a prefix for the keys, replacing something like
"%d-%d" with a "%s" in snprintf(). Not sure it adds value, but improves
readability.
Please review carefully.
Compile-tested only!
Change-Id: I04f2a1eb2ecfc3283d849d150d10d088ae7aa7f1
updates: bz#1193929
Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
Diffstat (limited to 'xlators/cluster/afr/src/afr-transaction.c')
-rw-r--r-- | xlators/cluster/afr/src/afr-transaction.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/xlators/cluster/afr/src/afr-transaction.c b/xlators/cluster/afr/src/afr-transaction.c index c5f016d4a8e..ab3a121efe3 100644 --- a/xlators/cluster/afr/src/afr-transaction.c +++ b/xlators/cluster/afr/src/afr-transaction.c @@ -1713,6 +1713,7 @@ afr_changelog_populate_xdata(call_frame_t *frame, afr_xattrop_type_t op, int i = 0; int ret = 0; char *key = NULL; + int keylen = 0; const char *name = NULL; dict_t *xdata1 = NULL; dict_t *xdata2 = NULL; @@ -1770,7 +1771,8 @@ afr_changelog_populate_xdata(call_frame_t *frame, afr_xattrop_type_t op, } if (need_entry_key_set) { - ret = dict_set_str(xdata1, key, (char *)name); + keylen = strlen(key); + ret = dict_set_strn(xdata1, key, keylen, (char *)name); if (ret) gf_msg(THIS->name, GF_LOG_ERROR, 0, AFR_MSG_DICT_SET_FAILED, "%s/%s: Could not set %s key during xattrop", @@ -1780,7 +1782,8 @@ afr_changelog_populate_xdata(call_frame_t *frame, afr_xattrop_type_t op, if (!xdata2) goto out; - ret = dict_set_str(xdata2, key, (char *)local->newloc.name); + ret = dict_set_strn(xdata2, key, keylen, + (char *)local->newloc.name); if (ret) gf_msg(THIS->name, GF_LOG_ERROR, 0, AFR_MSG_DICT_SET_FAILED, "%s/%s: Could not set %s key during " @@ -2537,7 +2540,7 @@ afr_changelog_fsync(call_frame_t *frame, xlator_t *this) xdata = dict_new(); if (xdata) - ret = dict_set_int32(xdata, "batch-fsync", 1); + ret = dict_set_int32_sizen(xdata, "batch-fsync", 1); for (i = 0; i < priv->child_count; i++) { if (!local->transaction.pre_op[i]) |