From 7934cc16733720b3eb61ca83e22c62a8ffd9c644 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 20 Aug 1998 19:16:48 +0000 Subject: [PATCH] Update. 1998-08-20 19:14 Ulrich Drepper * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdeps_routines): Add umount and umount2. * sysdeps/unix/sysv/linux/syscalls.list: Remove umount. * sysdeps/unix/sysv/linux/umount.S: New file. * sysdeps/unix/sysv/linux/umount2.S: New file. * sysdeps/unix/sysv/linux/sys/mount.h: Declare umount2. Define MNT_FORCE. --- ChangeLog | 10 ++++++++++ sysdeps/unix/sysv/linux/Makefile | 3 ++- sysdeps/unix/sysv/linux/sys/mount.h | 7 +++++++ sysdeps/unix/sysv/linux/syscalls.list | 1 - sysdeps/unix/sysv/linux/umount.S | 12 ++++++++++++ sysdeps/unix/sysv/linux/umount2.S | 13 +++++++++++++ 6 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 sysdeps/unix/sysv/linux/umount.S create mode 100644 sysdeps/unix/sysv/linux/umount2.S diff --git a/ChangeLog b/ChangeLog index 5fd00e304d..a038b7bb8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +1998-08-20 19:14 Ulrich Drepper + + * sysdeps/unix/sysv/linux/Makefile [subdirs=misc] (sysdeps_routines): + Add umount and umount2. + * sysdeps/unix/sysv/linux/syscalls.list: Remove umount. + * sysdeps/unix/sysv/linux/umount.S: New file. + * sysdeps/unix/sysv/linux/umount2.S: New file. + * sysdeps/unix/sysv/linux/sys/mount.h: Declare umount2. + Define MNT_FORCE. + 1998-08-20 16:01 Ulrich Drepper * elf/ldd.sh.in: Redirect warnings and error messages to stderr. diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index b84fbed0c7..5c38ced83f 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -9,7 +9,8 @@ CPPFLAGS += -DHAVE_LLSEEK=1 endif ifeq ($(subdir),misc) -sysdep_routines += sysctl clone llseek getresuid getresgid sys_setresuid +sysdep_routines += sysctl clone llseek getresuid getresgid sys_setresuid \ + umount umount2 sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \ sys/io.h sys/klog.h sys/kdaemon.h \ diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h index 589ecbc1c5..4b7154928c 100644 --- a/sysdeps/unix/sysv/linux/sys/mount.h +++ b/sysdeps/unix/sysv/linux/sys/mount.h @@ -82,6 +82,10 @@ enum #define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */ +/* Possible value for FLAGS parameter of `umount2'. */ +#define MNT_FORCE /* Force unmounting. */ + + __BEGIN_DECLS /* Mount a filesystem. */ @@ -92,6 +96,9 @@ extern int mount __P ((__const char *__special_file, __const char *__dir, /* Unmount a filesystem. */ extern int umount __P ((__const char *__special_file)); +/* Unmount a filesystem. Forst unmounting if FALGS is set to MNT_FORCE. */ +extern int umount2 __P ((__const char *__special_file, int __flags)); + __END_DECLS #endif /* _SYS_MOUNT_H */ diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 6d06d0df99..82c6423afc 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -82,6 +82,5 @@ sys_writev writev writev 3 __syscall_writev sysinfo EXTRA sysinfo 1 sysinfo swapon - swapon 2 __swapon swapon swapoff - swapoff 1 __swapoff swapoff -umount EXTRA umount 1 __umount umount uselib EXTRA uselib 1 uselib wait4 - wait4 4 __wait4 wait4 diff --git a/sysdeps/unix/sysv/linux/umount.S b/sysdeps/unix/sysv/linux/umount.S new file mode 100644 index 0000000000..e18463e2e6 --- /dev/null +++ b/sysdeps/unix/sysv/linux/umount.S @@ -0,0 +1,12 @@ +/* This hack is necessary since the kernel people are making "strange" + changes. They simply rename old system calls. */ + +#include +#ifdef __NR_oldumount +PSEUDO (__umount, oldumount, 1) +#else +PSEUDO (__umount, umount, 1) +#endif + ret +PSEUDO_END(__umount) +weak_alias (__umount, umount) diff --git a/sysdeps/unix/sysv/linux/umount2.S b/sysdeps/unix/sysv/linux/umount2.S new file mode 100644 index 0000000000..92241bbf97 --- /dev/null +++ b/sysdeps/unix/sysv/linux/umount2.S @@ -0,0 +1,13 @@ +/* umount system call with two parameters. */ + +#include +#if defined __NR_oldumount || defined __NR_umount2 +#ifdef __NR_oldumount +PSEUDO (__umount2, umount, 2) +#else +PSEUDO (__umount2, umount2, 2) +#endif + ret +PSEUDO_END(__umount2) +weak_alias (__umount2, umount2) +#endif