On Fri, Jun 26, 2020 at 03:36:02PM +0200, Sven Hoexter wrote:
On Fri, Jun 26, 2020 at 09:08:27AM -0400, Michael Stone wrote:
Now that exfat is available as a kernel module, it would be nice if the /sbin/mount.exfat link were removed to make it easier for a user to choose either the exfat kernel module or the fuse module at runtime. Currently the link masks the kernel module so that exfat-fuse is always used, without the link the kernel module would be used by default but mounting with -t exfat-fuse would use the fuse implementation.
Yes, I already started to think about what the future of the fuse exfat stack could look like. From my personal point of view we could drop it. OTOH for some people an independent implementation might still provide some value. So maybe your proposal to just move it a bit out of the way is a good first step.

Yeah, I personally am really happy to switch to a better performing implementation because my only use for exfat is pulling large amounts of data off fast removeable storage and the fuse implementation has been a bottleneck. That said, the fuse implementation has a much longer track record and some people may be happy to stick with it for a while longer, especially if their use case involves writing data or if performance isn't an issue. In my mind the ideal situation would be to not break any existing systems, while still defaulting to the kernel implementation if it's available, and letting users disable the kernel implementation if that's their preference.

On Fri, Jun 26, 2020 at 03:39:29PM +0200, Sven Hoexter wrote:
On Fri, Jun 26, 2020 at 09:22:18AM -0400, Michael Stone wrote:
Alternatively, perhaps replacing the mount.exfat link with something like
the following would be a better option, to transparently support kernels
with and without the native module:

#!/bin/sh

if grep -qF exfat /proc/filesystems || modinfo exfat > /dev/null 2>&1 ; then
        mount -i $*
else
        mount.exfat-fuse $*
fi

Well as soon as a recent kernel enters testing I believe it
would just cause confusion. Main audience to profit would be
people using testing/unstable with an old or custom kernel
and none Linux ports from my point of view.
Would that help someone in the end?

Or custom kernels, or backports. Definitely not mainstream, but something along these lines should keep exfat mounts working transparently regardless of kernel support.

Here's a slight variation:

#!/bin/sh

set -e

modprobe -b exfat > /dev/null 2>&1 || true

if grep -qF exfat /proc/filesystems; then
        mount -i $*
else
        mount.exfat-fuse $*
fi

This one would let someone blacklist the kernel module and everything would continue working with the fuse implementation. OTOH, it is linux specific (maybe just leaving the symlink as-is would work on non-linux?) and if you don't want to bother maintaining something like this I wouldn't argue about that decision.

Reply via email to