fuse: feasible to distinguish between umount and abort?

From: Nikolaus Rath
Date: Wed Nov 23 2016 - 18:11:49 EST


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)?


Best,
-Nikolaus

--
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F

ÂTime flies like an arrow, fruit flies like a Banana.Â