public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] fuse update for 3.19
@ 2014-12-17 10:02 Miklos Szeredi
  2014-12-17 10:15 ` Al Viro
  0 siblings, 1 reply; 8+ messages in thread
From: Miklos Szeredi @ 2014-12-17 10:02 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel, linux-fsdevel

Hi Linus,

Please pull from:

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

First part makes sure we don't hold up umount with pending async requests.  In
addition to being a cleanup, this is a small behavioral change (for the better)
and unlikely to break anything.  Second part prepares for a cleanup of the fuse
device I/O code by adding a helper for simple request submission, with some
savings in line numbers already realized.

Thanks,
Miklos

---
Miklos Szeredi (6):
      fuse: don't wake up reserved req in fuse_conn_kill()
      fuse: flush requests on umount
      fuse: hold inode instead of path after release
      fuse: reduce max out args
      fuse: introduce fuse_simple_request() helper
      fuse: use file_inode() in fuse_file_fallocate()

---
 fs/fuse/cuse.c   |   2 +-
 fs/fuse/dev.c    |  29 +++
 fs/fuse/dir.c    | 538 ++++++++++++++++++++++---------------------------------
 fs/fuse/file.c   | 230 ++++++++----------------
 fs/fuse/fuse_i.h |  45 +++--
 fs/fuse/inode.c  |  39 +---
 6 files changed, 359 insertions(+), 524 deletions(-)

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: [GIT PULL] fuse update for 3.19
@ 2014-12-24 16:53 Marc Dionne
  2015-01-05 17:11 ` Miklos Szeredi
  0 siblings, 1 reply; 8+ messages in thread
From: Marc Dionne @ 2014-12-24 16:53 UTC (permalink / raw)
  To: Miklos Szeredi; +Cc: Linux Kernel Mailing List, linux-fsdevel

On Wed, Dec 17, 2014 at 6:02 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> Hi Linus,
>
> Please pull from:
>
>   git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-linus
>
> First part makes sure we don't hold up umount with pending async requests.  In
> addition to being a cleanup, this is a small behavioral change (for the better)
> and unlikely to break anything.  Second part prepares for a cleanup of the fuse
> device I/O code by adding a helper for simple request submission, with some
> savings in line numbers already realized.
>
> Thanks,
> Miklos
>
> ---
> Miklos Szeredi (6):
>       fuse: don't wake up reserved req in fuse_conn_kill()
>       fuse: flush requests on umount
>       fuse: hold inode instead of path after release
>       fuse: reduce max out args
>       fuse: introduce fuse_simple_request() helper
>       fuse: use file_inode() in fuse_file_fallocate()
>

Hi Miklos,

Commit 7078187a795f ("fuse: introduce fuse_simple_request() helper")
from the above pull request triggers some EIO errors for me in some
tests that rely on fuse.

Looking at the code changes and a bit of debugging info I think
there's a general problem here that fuse_get_req checks and possibly
waits for fc->initialized, and this was always called first.  But this
commit changes the ordering and in many places fc->minor is now
possibly used before fuse_get_req, and we can't be sure that fc has
been initialized.  In my case fuse_lookup_init sets
req->out.args[0].size to the wrong size because fc->minor at that
point is still 0, leading to the EIO error.

Assuming the analysis makes sense, it wasn't obvious what the best fix
should be.

Thanks,
Marc

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

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

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-17 10:02 [GIT PULL] fuse update for 3.19 Miklos Szeredi
2014-12-17 10:15 ` Al Viro
2014-12-17 10:19   ` Miklos Szeredi
2014-12-17 10:23     ` Miklos Szeredi
  -- strict thread matches above, loose matches on Subject: below --
2014-12-24 16:53 Marc Dionne
2015-01-05 17:11 ` Miklos Szeredi
2015-01-05 17:33   ` Marc Dionne
2015-01-08 14:11     ` Miklos Szeredi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox