]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/Preforker: fix warning
authorSage Weil <sage@inktank.com>
Tue, 18 Jun 2013 03:32:15 +0000 (20:32 -0700)
committerSage Weil <sage@inktank.com>
Wed, 19 Jun 2013 05:03:14 +0000 (22:03 -0700)
common/Preforker.h: In member function ‘int Preforker::signal_exit(int)’:
warning: common/Preforker.h:82:45: ignoring return value of ‘ssize_t safe_write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]

This is harder than it should be to fix.  :(
  http://stackoverflow.com/questions/3614691/casting-to-void-doesnt-remove-warn-unused-result-error

Whatever, I guess we can do something useful with this return value.

Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: David Zafman <david.zafman@inktank.com>
(cherry picked from commit ce7b5ea7d5c30be32e4448ab0e7e6bb6147af548)

src/common/Preforker.h

index 2c1d4fd6795693d281ff1ca17f8500caa8832897..98304c632b719b7ebec93d52d9d42278d7f6e511 100644 (file)
@@ -78,8 +78,11 @@ public:
 
   int signal_exit(int r) {
     if (forked) {
-      // tell parent
-      (void)safe_write(fd[1], &r, sizeof(r));
+      // tell parent.  this shouldn't fail, but if it does, pass the
+      // error back to the parent.
+      int ret = safe_write(fd[1], &r, sizeof(r));
+      if (ret <= 0)
+       return ret;
     }
     return r;
   }