mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 17:59:20 -04:00
sysutils/fusefs-libs: reconnect r404898 changes with old history
This commit is contained in:
parent
bb67c52d09
commit
d87cde7739
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=411453
3 changed files with 107 additions and 0 deletions
77
sysutils/fusefs-libs/files/patch-lib_mount__bsd.c
Normal file
77
sysutils/fusefs-libs/files/patch-lib_mount__bsd.c
Normal file
|
@ -0,0 +1,77 @@
|
|||
--- lib/mount_bsd.c.orig 2015-05-22 09:24:02 UTC
|
||||
+++ lib/mount_bsd.c
|
||||
@@ -10,6 +10,8 @@
|
||||
#include "fuse_misc.h"
|
||||
#include "fuse_opt.h"
|
||||
|
||||
+#include <sys/param.h>
|
||||
+#include <sys/mount.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/sysctl.h>
|
||||
@@ -78,6 +80,7 @@ static const struct fuse_opt fuse_mount_
|
||||
FUSE_DUAL_OPT_KEY("ro", KEY_KERN),
|
||||
FUSE_DUAL_OPT_KEY("rw", KEY_KERN),
|
||||
FUSE_DUAL_OPT_KEY("auto", KEY_KERN),
|
||||
+ FUSE_DUAL_OPT_KEY("automounted", KEY_KERN),
|
||||
/* options supported under both Linux and FBSD */
|
||||
FUSE_DUAL_OPT_KEY("allow_other", KEY_KERN),
|
||||
FUSE_DUAL_OPT_KEY("default_permissions",KEY_KERN),
|
||||
@@ -192,56 +195,12 @@ void fuse_unmount_compat22(const char *m
|
||||
free(umount_cmd);
|
||||
}
|
||||
|
||||
-static void do_unmount(char *dev, int fd)
|
||||
-{
|
||||
- char device_path[SPECNAMELEN + 12];
|
||||
- const char *argv[4];
|
||||
- const char umount_cmd[] = "/sbin/umount";
|
||||
- pid_t pid;
|
||||
-
|
||||
- snprintf(device_path, SPECNAMELEN + 12, _PATH_DEV "%s", dev);
|
||||
-
|
||||
- argv[0] = umount_cmd;
|
||||
- argv[1] = "-f";
|
||||
- argv[2] = device_path;
|
||||
- argv[3] = NULL;
|
||||
-
|
||||
- pid = fork();
|
||||
-
|
||||
- if (pid == -1)
|
||||
- return;
|
||||
-
|
||||
- if (pid == 0) {
|
||||
- close(fd);
|
||||
- execvp(umount_cmd, (char **)argv);
|
||||
- exit(1);
|
||||
- }
|
||||
-
|
||||
- waitpid(pid, NULL, 0);
|
||||
-}
|
||||
-
|
||||
void fuse_kern_unmount(const char *mountpoint, int fd)
|
||||
{
|
||||
char *ep, dev[128];
|
||||
struct stat sbuf;
|
||||
|
||||
- (void)mountpoint;
|
||||
-
|
||||
- if (fstat(fd, &sbuf) == -1)
|
||||
- goto out;
|
||||
-
|
||||
- devname_r(sbuf.st_rdev, S_IFCHR, dev, 128);
|
||||
-
|
||||
- if (strncmp(dev, "fuse", 4))
|
||||
- goto out;
|
||||
-
|
||||
- strtol(dev + 4, &ep, 10);
|
||||
- if (*ep != '\0')
|
||||
- goto out;
|
||||
-
|
||||
- do_unmount(dev, fd);
|
||||
-
|
||||
-out:
|
||||
+ unmount(mountpoint, MNT_FORCE);
|
||||
close(fd);
|
||||
}
|
||||
|
23
sysutils/fusefs-libs/files/patch-lib_mount__util.c
Normal file
23
sysutils/fusefs-libs/files/patch-lib_mount__util.c
Normal file
|
@ -0,0 +1,23 @@
|
|||
--- lib/mount_util.c.orig 2015-05-22 09:24:02 UTC
|
||||
+++ lib/mount_util.c
|
||||
@@ -344,20 +344,3 @@ int fuse_mnt_check_empty(const char *pro
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
-int fuse_mnt_check_fuseblk(void)
|
||||
-{
|
||||
- char buf[256];
|
||||
- FILE *f = fopen("/proc/filesystems", "r");
|
||||
- if (!f)
|
||||
- return 1;
|
||||
-
|
||||
- while (fgets(buf, sizeof(buf), f))
|
||||
- if (strstr(buf, "fuseblk\n")) {
|
||||
- fclose(f);
|
||||
- return 1;
|
||||
- }
|
||||
-
|
||||
- fclose(f);
|
||||
- return 0;
|
||||
-}
|
7
sysutils/fusefs-libs/files/patch-lib_mount__util.h
Normal file
7
sysutils/fusefs-libs/files/patch-lib_mount__util.h
Normal file
|
@ -0,0 +1,7 @@
|
|||
--- lib/mount_util.h.orig 2015-05-22 09:24:02 UTC
|
||||
+++ lib/mount_util.h
|
||||
@@ -16,4 +16,3 @@ int fuse_mnt_umount(const char *progname
|
||||
char *fuse_mnt_resolve_path(const char *progname, const char *orig);
|
||||
int fuse_mnt_check_empty(const char *progname, const char *mnt,
|
||||
mode_t rootmode, off_t rootsize);
|
||||
-int fuse_mnt_check_fuseblk(void);
|
Loading…
Add table
Reference in a new issue