On Thu, Nov 24, 2016 at 12:11 AM, Nikolaus Rath <Nikolaus@xxxxxxxx> wrote: > Hello, > > Currently, both a call to umount(2) and writing "1" to > /sys/fs/fuse/connections/NNN/abort will put the /dev/fuse fd into the > same state: reading from it returns ENODEV, and polling on it returns > POLLERR. > > This causes problems for filesystems that want to ensure that the > mountpoint is free when they exit. If accessing the device fd gives the > above errors, they have to do an additional check to determine if they > still need to unmount the mountpoint. This is difficult to do without > race conditions (think of someone unmounting and immediately re-starting > a new filesystem instance). > > Would it be possible to change the behavior of the /dev/fuse fd so that > userspace can distinguish between a regular umount and use of the > /sys/fs/fuse abort)? Yes. My proposal would be for the kernel to send FUSE_DESTROY asynchronously and only return ENODEV once that request was read by userspace. Currently FUSE_DESTROY is sent synchronously for fuseblk mounts, but not for plain fuse mounts. Please file a bug somewhere. I don't mind if kernel bugs are also kept at the github project as long as they can easily be found. Thanks, Miklos -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html