diff options
Diffstat (limited to 'libc/sysdeps/linux/common')
| -rw-r--r-- | libc/sysdeps/linux/common/umount.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/libc/sysdeps/linux/common/umount.c b/libc/sysdeps/linux/common/umount.c index f4eb8c64e..b5767a706 100644 --- a/libc/sysdeps/linux/common/umount.c +++ b/libc/sysdeps/linux/common/umount.c @@ -12,13 +12,19 @@  #ifdef __NR_umount	/* Some newer archs only have umount2 */  #include <sys/mount.h>  _syscall1(int, umount, const char *, specialfile); +  #elif defined __NR_umount2  /* No umount syscall, but umount2 is available....  Try to   * emulate umount() using umount2() */ + +#define __NR___syscall_umount2 __NR_umount2 +static inline _syscall2(int, umount2, const char *, special_file, int, flags); +  int umount(const char *special_file, int flags)  { -	return _syscall2(int, umount2, const char *, special_file, int, flags); +	return (__syscall_umount2(special_file, flags));  } +  #else  int umount(const char *special_file)  { @@ -26,4 +32,3 @@ int umount(const char *special_file)  	return -1;  }  #endif - | 
