summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/src/glfs-fops.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c
index 338bd2f4bc4..0fbcde395ea 100644
--- a/api/src/glfs-fops.c
+++ b/api/src/glfs-fops.c
@@ -552,7 +552,6 @@ invalid_fs:
GFAPI_SYMVER_PUBLIC_DEFAULT(glfs_creat, 3.4.0);
-
off_t
pub_glfs_lseek (struct glfs_fd *glfd, off_t offset, int whence)
{
@@ -870,6 +869,9 @@ pub_glfs_preadv_async (struct glfs_fd *glfd, const struct iovec *iovec,
offset, flags, NULL);
out:
+ if (fd)
+ fd_unref (fd);
+
if (ret) {
if (glfd)
GF_REF_PUT (glfd);
@@ -1185,6 +1187,9 @@ pub_glfs_pwritev_async (struct glfs_fd *glfd, const struct iovec *iovec,
ret = 0;
out:
+ if (fd)
+ fd_unref (fd);
+
if (ret) {
if (glfd)
GF_REF_PUT (glfd);
@@ -1369,6 +1374,9 @@ glfs_fsync_async_common (struct glfs_fd *glfd, glfs_io_cbk fn, void *data,
subvol->fops->fsync, fd, dataonly, NULL);
out:
+ if (fd)
+ fd_unref (fd);
+
if (ret) {
if (glfd)
GF_REF_PUT (glfd);
@@ -1620,6 +1628,9 @@ pub_glfs_ftruncate_async (struct glfs_fd *glfd, off_t offset, glfs_io_cbk fn,
ret = 0;
out:
+ if (fd)
+ fd_unref (fd);
+
if (ret) {
if (glfd)
GF_REF_PUT (glfd);
@@ -2476,6 +2487,9 @@ pub_glfs_discard_async (struct glfs_fd *glfd, off_t offset, size_t len,
ret = 0;
out:
+ if (fd)
+ fd_unref (fd);
+
if (ret) {
if (glfd)
GF_REF_PUT (glfd);
@@ -2561,6 +2575,9 @@ pub_glfs_zerofill_async (struct glfs_fd *glfd, off_t offset, off_t len,
subvol->fops->zerofill, fd, offset, len, NULL);
ret = 0;
out:
+ if (fd)
+ fd_unref (fd);
+
if (ret) {
if (glfd)
GF_REF_PUT (glfd);