linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Enrico Weigelt, metux IT consult" <lkml@metux.net>
To: Peng Tao <bergwolf@gmail.com>
Cc: Alessio Balsini <balsini@android.com>,
	Peng Tao <tao.peng@linux.alibaba.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	Amir Goldstein <amir73il@gmail.com>
Subject: Re: [PATCH RFC] fuse: add generic file store
Date: Wed, 16 Jun 2021 18:09:57 +0200	[thread overview]
Message-ID: <6d58bd0f-668a-983a-bf7c-13110c02dae0@metux.net> (raw)
In-Reply-To: <CA+a=Yy4iyMNK=8KxZ2PvB+zs8fbYNchEOyjcreWx4NEYopbtAg@mail.gmail.com>

On 16.06.21 12:20, Peng Tao wrote:
>> So, just open() a file on a fuse fs can't restore the fd directly
>> (instead of opening a new file) ? If that's the case, that would mean,
>> userland has to take very special actions in order to get it. Right ?
> Yes.

Then, it's not at all what I'm looking for :(

> Oh, nop, that is not how the current RFC works. I see two gaps:
> 1. /dev/fuse is not accessible to all processes by default

it shouldn't necessary at all - in my use case.

> 2. open() syscall doesn't take enough arguments to tell the kernel
> which file's fd it wants.

open() only works on a path name - that's exactly what I need.

Could you please tell more what your use case is actually about ?
Still struggling what you're actually going to achieve.

Just keeping fd's open while a server restarts ?
If that's what you want, I see much wider use far outside of fuse,
and that might call for some more generic approach - something like
Plan9's /srv filesystem.

> It seems that a proper solution to your use case is to:
> 1. extend the open() syscall to take a flag like FOPEN_FUSE_OPEN_FD (I
> agree it's a bad name;)

But that would still require changes in my userland. Something I do not
want per definition - it should work transparently. The application just
knows some file name (it might be even expecting common device names,
but put inside its own mount ns), nothing more, and no need to change
the application itself.

> 2. FUSE kernel passes such a flag to fuse daemon
> 3. FUSE userspace daemon opens the file in the underlying file system,
> store it to a kernel FD store, then return its IDR in the reply to
> FUSE_OPEN API
> 4. FUSE kernel looks up underlying FD with the IDR, install it in the
> calling process FD table, and return the new FD to the application

Does FUSE actually manipulate the process' fd table directly, while
in the open() callback ?


--mtx

-- 
---
Hinweis: unverschlüsselte E-Mails können leicht abgehört und manipuliert
werden ! Für eine vertrauliche Kommunikation senden Sie bitte ihren
GPG/PGP-Schlüssel zu.
---
Enrico Weigelt, metux IT consult
Free software and Linux embedded engineering
info@metux.net -- +49-151-27565287

  reply	other threads:[~2021-06-16 16:10 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-01  8:58 [PATCH RFC] fuse: add generic file store Peng Tao
2021-06-02 15:50 ` Alessio Balsini
2021-06-07  7:46   ` Peng Tao
2021-06-07 15:32   ` Enrico Weigelt, metux IT consult
2021-06-08  2:58     ` Peng Tao
2021-06-08 10:49       ` Enrico Weigelt, metux IT consult
2021-06-08 12:41         ` Peng Tao
2021-06-09 12:54           ` Enrico Weigelt, metux IT consult
2021-06-11 12:46             ` Peng Tao
2021-06-15 18:50               ` Enrico Weigelt, metux IT consult
2021-06-16 10:20                 ` Peng Tao
2021-06-16 16:09                   ` Enrico Weigelt, metux IT consult [this message]
2021-06-17 13:23                     ` Peng Tao
2021-06-21 19:05                       ` Enrico Weigelt, metux IT consult
2021-06-22  6:46                         ` Peng Tao
2021-06-24 14:19                           ` Enrico Weigelt, metux IT consult

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=6d58bd0f-668a-983a-bf7c-13110c02dae0@metux.net \
    --to=lkml@metux.net \
    --cc=amir73il@gmail.com \
    --cc=balsini@android.com \
    --cc=bergwolf@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=tao.peng@linux.alibaba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).