aboutsummaryrefslogtreecommitdiff
path: root/lib/mount.c
diff options
context:
space:
mode:
authorGravatar Miklos Szeredi <miklos@szeredi.hu>2007-12-12 11:53:38 +0000
committerGravatar Miklos Szeredi <miklos@szeredi.hu>2007-12-12 11:53:38 +0000
commit918f0ad95b73e506d20488cb8ddd35d1a2524c7c (patch)
treec2adf3e3c71b94c59b8d64beb9a0ab83ab87119c /lib/mount.c
parent0b47f6bc8bfe939f12266ef41cba31a2eb2c5f30 (diff)
Disable old symbol versions if __UCLIBC__ is defined
Diffstat (limited to 'lib/mount.c')
-rw-r--r--lib/mount.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/mount.c b/lib/mount.c
index e0fea56..8a5c5ab 100644
--- a/lib/mount.c
+++ b/lib/mount.c
@@ -8,6 +8,7 @@
#include "config.h"
#include "fuse_i.h"
+#include "fuse_misc.h"
#include "fuse_opt.h"
#include "fuse_common_compat.h"
#include "mount_util.h"
@@ -283,6 +284,10 @@ void fuse_kern_unmount(const char *mountpoint, int fd)
then the filesystem is already unmounted */
if (res == 1 && (pfd.revents & POLLERR))
return;
+
+ /* Need to close file descriptor, otherwise synchronous umount
+ would recurse into filesystem, and deadlock */
+ close(fd);
}
if (geteuid() == 0) {
@@ -579,5 +584,5 @@ int fuse_kern_mount(const char *mountpoint, struct fuse_args *args)
return res;
}
-__asm__(".symver fuse_mount_compat22,fuse_mount@FUSE_2.2");
-__asm__(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");
+FUSE_SYMVER(".symver fuse_mount_compat22,fuse_mount@FUSE_2.2");
+FUSE_SYMVER(".symver fuse_unmount_compat22,fuse_unmount@FUSE_2.2");