block/gluster: return correct error value
authorJeff Cody <jcody@redhat.com>
Wed, 6 Apr 2016 03:11:34 +0000 (23:11 -0400)
committerJeff Cody <jcody@redhat.com>
Tue, 19 Apr 2016 16:24:59 +0000 (12:24 -0400)
Upon error, gluster will call the aio callback function with a
ret value of -1, with errno set to the proper error value.  If
we set the acb->ret value to the return value in the callback,
that results in every error being EPERM (i.e. 1).  Instead, set
it to the proper error result.

Reviewed-by: Niels de Vos <ndevos@redhat.com>
Signed-off-by: Jeff Cody <jcody@redhat.com>
block/gluster.c

index 51e154c..b0e2cc2 100644 (file)
@@ -247,7 +247,7 @@ static void gluster_finish_aiocb(struct glfs_fd *fd, ssize_t ret, void *arg)
     if (!ret || ret == acb->size) {
         acb->ret = 0; /* Success */
     } else if (ret < 0) {
-        acb->ret = ret; /* Read/Write failed */
+        acb->ret = -errno; /* Read/Write failed */
     } else {
         acb->ret = -EIO; /* Partial read/write - fail it */
     }