summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sys/mount.h3
-rw-r--r--libc/sysdeps/linux/common/umount.c17
-rw-r--r--libc/sysdeps/linux/common/umount2.c7
3 files changed, 10 insertions, 17 deletions
diff --git a/include/sys/mount.h b/include/sys/mount.h
index 57d440f27..f3198e6ae 100644
--- a/include/sys/mount.h
+++ b/include/sys/mount.h
@@ -115,8 +115,11 @@ extern int mount (__const char *__special_file, __const char *__dir,
/* Unmount a filesystem. */
extern int umount (__const char *__special_file) __THROW;
+#ifdef __UCLIBC_LINUX_SPECIFIC__
/* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */
extern int umount2 (__const char *__special_file, int __flags) __THROW;
+libc_hidden_proto(umount2)
+#endif
__END_DECLS
diff --git a/libc/sysdeps/linux/common/umount.c b/libc/sysdeps/linux/common/umount.c
index a084d29bd..916c6c815 100644
--- a/libc/sysdeps/linux/common/umount.c
+++ b/libc/sysdeps/linux/common/umount.c
@@ -9,24 +9,15 @@
#include <sys/syscall.h>
-#if defined __USE_GNU
#include <sys/mount.h>
-
-/* arch provides umount() syscall */
#ifdef __NR_umount
-
_syscall1(int, umount, const char *, specialfile)
-
-/* arch provides umount2() syscall */
#elif defined __NR_umount2
-
-# define __NR___syscall_umount2 __NR_umount2
-static __inline__ _syscall2(int, __syscall_umount2, const char *, special_file, int, flags)
-
+# ifndef __UCLIBC_LINUX_SPECIFIC__
+static __always_inline _syscall2(int, umount2, const char *, special_file, int, flags)
+# endif
int umount(const char *special_file)
{
- return (__syscall_umount2(special_file, 0));
+ return umount2(special_file, 0);
}
-
-#endif
#endif
diff --git a/libc/sysdeps/linux/common/umount2.c b/libc/sysdeps/linux/common/umount2.c
index 2cc4a2338..08e0f3388 100644
--- a/libc/sysdeps/linux/common/umount2.c
+++ b/libc/sysdeps/linux/common/umount2.c
@@ -9,9 +9,8 @@
#include <sys/syscall.h>
-#if defined __USE_GNU
-#include <sys/mount.h>
-#ifdef __NR_umount2 /* Old kernels don't have umount2 */
+#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __NR_umount2
+# include <sys/mount.h>
_syscall2(int, umount2, const char *, special_file, int, flags)
-#endif
+libc_hidden_def(umount2)
#endif