summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/common/umount.c
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-02-13 08:11:38 +0000
committerMike Frysinger <vapier@gentoo.org>2005-02-13 08:11:38 +0000
commit8b7d5c86ca6e6679ae8ad7bc16e97b3b204f217d (patch)
treebb56a6897d4ef9b51e5b6b3bac2d5db6fe975c93 /libc/sysdeps/linux/common/umount.c
parent8498ae47b0c941e14d1e67f530bd6c795099e897 (diff)
x86_64 fixes: make sure the fall back routine for using umount2() for umount() actually works :)
Diffstat (limited to 'libc/sysdeps/linux/common/umount.c')
-rw-r--r--libc/sysdeps/linux/common/umount.c9
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
-