From mboxrd@z Thu Jan 1 00:00:00 1970 From: Miklos Szeredi Subject: Re: [fuse-devel] [BUG] fuse: request prepared before protocol version is known Date: Thu, 8 Jan 2015 15:14:18 +0100 Message-ID: References: <20141223175803.GA9789@zzz> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: fuse-devel , Linux-Fsdevel , "mszeredi@suse.cz" , Kernel Mailing List To: Eric Biggers Return-path: In-Reply-To: <20141223175803.GA9789@zzz> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Tue, Dec 23, 2014 at 6:58 PM, Eric Biggers 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