Amd map.c: don't ignore return value from write(2)
authorErez Zadok <ezk@cs.sunysb.edu>
Wed, 24 Nov 2010 19:11:04 +0000 (14:11 -0500)
committerErez Zadok <ezk@cs.sunysb.edu>
Wed, 24 Nov 2010 19:11:04 +0000 (14:11 -0500)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
amd/map.c

index 0b06f0d91b10f9cef22fefe4236ebd0777d80713..ff6014c9f99b193d451bf16ed85c10ec0be0f676 100644 (file)
--- a/amd/map.c
+++ b/amd/map.c
@@ -440,13 +440,18 @@ void
 notify_child(am_node *mp, au_etype au_etype, int au_errno, int au_signal)
 {
   amq_sync_umnt rv;
+  int err;
 
   if (mp->am_fd[1] >= 0) {     /* we have a child process */
     rv.au_etype = au_etype;
     rv.au_signal = au_signal;
     rv.au_errno = au_errno;
 
-    write(mp->am_fd[1], &rv, sizeof(rv));
+    err = write(mp->am_fd[1], &rv, sizeof(rv));
+    /* XXX: do something else on err? */
+    if (err < sizeof(rv))
+      plog(XLOG_INFO, "notify_child: write returned %d instead of %d.",
+          err, (int) sizeof(rv));
     close(mp->am_fd[1]);
     mp->am_fd[1] = -1;
   }