All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nikolaus Rath <Nikolaus@rath.org>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Miklos Szeredi <mszeredi@redhat.com>,
	fuse-devel <fuse-devel@lists.sourceforge.net>
Subject: Re: [fuse-devel] fuse: feasible to distinguish between umount and abort?
Date: Thu, 24 Nov 2016 16:33:28 -0800	[thread overview]
Message-ID: <87polkv1nr.fsf@vostro.rath.org> (raw)
In-Reply-To: <CAJfpegsaOBE-4MUZBT=pMSYsTD7kMmstrFfU5D7MYuYw+f15aQ@mail.gmail.com> (Miklos Szeredi's message of "Thu, 24 Nov 2016 10:10:44 +0100")

On Nov 24 2016, Miklos Szeredi <miklos@szeredi.hu> wrote:
> 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.

I trust that this is a good plan, but from the description I can't quite
tell how the filesystem would make the distinction between umount/abort
based on this. Would FUSE_DESTROY be send only for unmount, but not for
abort?


> 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.

Already done at https://github.com/libfuse/libfuse/issues/122.


Thanks!
-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.«

  parent reply	other threads:[~2016-11-25  0:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-23 23:11 fuse: feasible to distinguish between umount and abort? Nikolaus Rath
2016-11-24  9:10 ` [fuse-devel] " Miklos Szeredi
2016-11-24 12:09   ` Stef Bon
2016-11-25  0:33   ` Nikolaus Rath [this message]
2016-11-29 10:45     ` Miklos Szeredi
2016-11-29 16:01       ` Nikolaus Rath

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87polkv1nr.fsf@vostro.rath.org \
    --to=nikolaus@rath.org \
    --cc=fuse-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=mszeredi@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.