Browse Source

fix incorrect void return type for syncfs function

being nonstandard, the closest thing to a specification for this
function is its man page, which documents it as returning int. it can
fail with EBADF if the file descriptor passed is invalid.
Rich Felker 9 years ago
parent
commit
11894f6d3a
2 changed files with 3 additions and 3 deletions
  1. 1 1
      include/unistd.h
  2. 2 2
      src/linux/syncfs.c

+ 1 - 1
include/unistd.h

@@ -185,7 +185,7 @@ int setresgid(gid_t, gid_t, gid_t);
 int getresuid(uid_t *, uid_t *, uid_t *);
 int getresgid(gid_t *, gid_t *, gid_t *);
 char *get_current_dir_name(void);
-void syncfs(int);
+int syncfs(int);
 int euidaccess(const char *, int);
 int eaccess(const char *, int);
 #endif

+ 2 - 2
src/linux/syncfs.c

@@ -2,7 +2,7 @@
 #include <unistd.h>
 #include "syscall.h"
 
-void syncfs(int fd)
+int syncfs(int fd)
 {
-	__syscall(SYS_syncfs, fd);
+	return syscall(SYS_syncfs, fd);
 }