SerCeMan / jnr-fuse

FUSE implementation in Java using Java Native Runtime (JNR)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Allow mounting to non-existing mount points

overheadhunter opened this issue · comments

During an attempt to mount, jnr-fuse checks whether the mount point is an existing directory. If it is not, an exception is thrown:

ru.serce.jnrfuse.FuseException: Mount point should be directory
	at ru.serce.jnrfuse.AbstractFuseFS.mount(AbstractFuseFS.java:263)
	... 15 common frames omitted

There is already an exception for winfsp:

if (!Platform.IS_WINDOWS) {
// winfsp requires non-existing directory to be provided
if (!Files.isDirectory(mountPoint)) {
throw new FuseException("Mount point should be directory");
}
}

There are, however, further cases in which it is desirable to mount to a non-existing directory. According to this commit to sshfs FUSE has certain workarounds:

In order to allow non-privileged users to mount FUSE volumes under /Volumes FUSE will create
non-existent mount points automatically.

Therefore I kindly request to either disable this check completely (let the software depending on jnr-fuse take care of it) or add an overloaded method, e.g. public void mount(Path mountPoint, boolean blocking, boolean debug, boolean requireMountPointToExist, String[] fuseOpts).

Thank you ❤️

Hey, @overheadhunter!

Thank you for your patience. Looking at osxfuse, removing the check seems reasonable to me. That way, jnr-fuse will more closely resemble fuse.

Would you be able to open a PR? If not, I'll try to take a look at this sometime during the next week.