Return the actual success result from __futex.

futex(2) can return non-zero successes.

Bug: 15195455
Change-Id: I7818bc922a5a2df31228ff72c169320b5e69a544
diff --git a/libc/private/bionic_futex.h b/libc/private/bionic_futex.h
index 35d33d0..bd2bd36 100644
--- a/libc/private/bionic_futex.h
+++ b/libc/private/bionic_futex.h
@@ -42,12 +42,12 @@
 static inline __always_inline int __futex(volatile void* ftx, int op, int value, const struct timespec* timeout) {
   // Our generated syscall assembler sets errno, but our callers (pthread functions) don't want to.
   int saved_errno = errno;
-  if (__predict_false(syscall(__NR_futex, ftx, op, value, timeout) == -1)) {
-    int result = -errno;
+  int result = syscall(__NR_futex, ftx, op, value, timeout);
+  if (__predict_false(result == -1)) {
+    result = -errno;
     errno = saved_errno;
-    return result;
   }
-  return 0;
+  return result;
 }
 
 static inline int __futex_wake(volatile void* ftx, int count) {