linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [BUG] fuse: request prepared before protocol version is known
@ 2014-12-23 17:58 Eric Biggers
  2015-01-08 14:14 ` [fuse-devel] " Miklos Szeredi
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Biggers @ 2014-12-23 17:58 UTC (permalink / raw)
  To: fuse-devel; +Cc: linux-fsdevel, linux-kernel, mszeredi

I am using Linux 3.19-rc1 and I encountered a bug where stat() would
sporatically fail with EIO when called on a file in a FUSE filesystem very
shortly after that filesystem has been mounted.  This is a regression caused by
commit 7078187a: "fuse: introduce fuse_simple_request() helper".

The underlying issue is that the arguments to the FUSE request are being
initialized before the protocol version (fc->minor) is known.  This was not a
problem with the old code because fuse_get_req() will wait until the channel has
been initialized.

The only potential solutions I have in mind are adding an explicit waits in all
the needed places, or reverting the commit.

Eric

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [fuse-devel] [BUG] fuse: request prepared before protocol version is known
  2014-12-23 17:58 [BUG] fuse: request prepared before protocol version is known Eric Biggers
@ 2015-01-08 14:14 ` Miklos Szeredi
  0 siblings, 0 replies; 2+ messages in thread
From: Miklos Szeredi @ 2015-01-08 14:14 UTC (permalink / raw)
  To: Eric Biggers
  Cc: fuse-devel, Linux-Fsdevel, mszeredi@suse.cz, Kernel Mailing List

On Tue, Dec 23, 2014 at 6:58 PM, Eric Biggers <ebiggers3@gmail.com> wrote:
> I am using Linux 3.19-rc1 and I encountered a bug where stat() would
> sporatically fail with EIO when called on a file in a FUSE filesystem very
> shortly after that filesystem has been mounted.  This is a regression caused by
> commit 7078187a: "fuse: introduce fuse_simple_request() helper".
>
> The underlying issue is that the arguments to the FUSE request are being
> initialized before the protocol version (fc->minor) is known.  This was not a
> problem with the old code because fuse_get_req() will wait until the channel has
> been initialized.
>
> The only potential solutions I have in mind are adding an explicit waits in all
> the needed places, or reverting the commit.

Thanks for the report.  See for-linus branch of

 git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-linus

for the fix.

Thanks,
Miklos

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-08 14:14 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-23 17:58 [BUG] fuse: request prepared before protocol version is known Eric Biggers
2015-01-08 14:14 ` [fuse-devel] " Miklos Szeredi

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