summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2018-10-16 15:34:52 +0300
committerDan McDonald <danmcd@joyent.com>2019-01-17 21:15:57 -0500
commit1b9bce10d88d75c318f27b82ba816b744c6f1075 (patch)
tree0b25c55998590e5b48e72d31639330802c27e481 /usr/src
parentb94c9724091d6587cd76f6ec562dc8888e3f31c0 (diff)
downloadillumos-joyent-1b9bce10d88d75c318f27b82ba816b744c6f1075.tar.gz
10190 aphysio: cast between incompatible function types
Reviewed by: Andy Fiddaman <af@citrus-it.net> Reviewed by: Gergő Mihály Doma <domag02@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/common/os/aio_subr.c14
-rw-r--r--usr/src/uts/common/sys/aio_impl.h2
2 files changed, 9 insertions, 7 deletions
diff --git a/usr/src/uts/common/os/aio_subr.c b/usr/src/uts/common/os/aio_subr.c
index ce8ed143b4..c857026a27 100644
--- a/usr/src/uts/common/os/aio_subr.c
+++ b/usr/src/uts/common/os/aio_subr.c
@@ -47,7 +47,7 @@
#include <sys/sdt.h>
int aphysio(int (*)(), int (*)(), dev_t, int, void (*)(), struct aio_req *);
-void aio_done(struct buf *);
+int aio_done(struct buf *);
void aphysio_unlock(aio_req_t *);
void aio_cleanup(int);
void aio_cleanup_exit(void);
@@ -131,7 +131,7 @@ aphysio(
* b_proc fields to cluster-specifc values.
*/
if (bp->b_iodone == NULL) {
- bp->b_iodone = (int (*)()) aio_done;
+ bp->b_iodone = aio_done;
/* b_forw points at an aio_req_t structure */
bp->b_forw = (struct buf *)reqp;
bp->b_proc = curproc;
@@ -188,7 +188,7 @@ anocancel(struct buf *bp)
* by clustering s/w as contract private interface.
*/
-void
+int
aio_done(struct buf *bp)
{
proc_t *p;
@@ -256,7 +256,7 @@ aio_done(struct buf *bp)
port_send_event(pkevp);
if (portevpend == 0)
cv_broadcast(&aiop->aio_portcv);
- return;
+ return (0);
}
if (aiop->aio_flags & AIO_CLEANUP) {
@@ -271,7 +271,7 @@ aio_done(struct buf *bp)
mutex_exit(&as->a_contents);
mutex_exit(&aiop->aio_mutex);
mutex_exit(&aiop->aio_portq_mutex);
- return;
+ return (0);
}
aio_deq(&aiop->aio_portpending, reqp);
@@ -336,7 +336,7 @@ aio_done(struct buf *bp)
aiop->aio_flags &= ~AIO_DONE_ACTIVE;
mutex_exit(&aiop->aio_mutex);
}
- return;
+ return (0);
}
/*
@@ -425,6 +425,8 @@ aio_done(struct buf *bp)
aio_sigev_send(p, lio_sigev);
if (lio_pkevp)
port_send_event(lio_pkevp);
+
+ return (0);
}
/*
diff --git a/usr/src/uts/common/sys/aio_impl.h b/usr/src/uts/common/sys/aio_impl.h
index de8e7e7ee1..337397c20a 100644
--- a/usr/src/uts/common/sys/aio_impl.h
+++ b/usr/src/uts/common/sys/aio_impl.h
@@ -182,7 +182,7 @@ extern void aio_req_remove_portq(aio_t *, aio_req_t *);
extern void aio_enq(aio_req_t **, aio_req_t *, int);
extern void aio_deq(aio_req_t **, aio_req_t *);
/* Clustering: PXFS module uses this interface */
-extern void aio_done(struct buf *);
+extern int aio_done(struct buf *);
#endif /* _KERNEL */