summaryrefslogtreecommitdiffstats
path: root/api/src/glfs-fops.c
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/glfs-fops.c')
-rw-r--r--api/src/glfs-fops.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c
index cc972a41e7c..55474693731 100644
--- a/api/src/glfs-fops.c
+++ b/api/src/glfs-fops.c
@@ -3022,8 +3022,6 @@ glfs_getxattr_process (void *value, size_t size, dict_t *xattr,
memcpy (value, data->data, ret);
out:
- if (xattr)
- dict_unref (xattr);
return ret;
}
@@ -3084,6 +3082,9 @@ retry:
out:
loc_wipe (&loc);
+ if (xattr)
+ dict_unref (xattr);
+
glfs_subvol_done (fs, subvol);
__GLFS_EXIT_FS;
@@ -3164,6 +3165,8 @@ out:
fd_unref (fd);
if (glfd)
GF_REF_PUT (glfd);
+ if (xattr)
+ dict_unref (xattr);
glfs_subvol_done (glfd->fs, subvol);
@@ -3197,9 +3200,6 @@ glfs_listxattr_process (void *value, size_t size, dict_t *xattr)
}
out:
- if (xattr)
- dict_unref (xattr);
-
return ret;
}
@@ -3248,6 +3248,9 @@ retry:
out:
loc_wipe (&loc);
+ if (xattr)
+ dict_unref (xattr);
+
glfs_subvol_done (fs, subvol);
__GLFS_EXIT_FS;
@@ -3313,6 +3316,8 @@ out:
fd_unref (fd);
if (glfd)
GF_REF_PUT (glfd);
+ if (xattr)
+ dict_unref (xattr);
glfs_subvol_done (glfd->fs, subvol);