lkml.org 
[lkml]   [2016]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [fuse-devel] fuse: feasible to distinguish between umount and abort?
    On Thu, Nov 24, 2016 at 12:11 AM, Nikolaus Rath <Nikolaus@rath.org> 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

    \
     
     \ /
      Last update: 2016-11-24 10:11    [W:3.098 / U:0.440 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site