Miklos Szeredi 21f621741a fuse: fix LOOKUP vs INIT compat handling
Analysis from Marc:

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

Fix by moving the compat adjustments into fuse_simple_request() to after
fuse_get_req().

This is also more readable than the original, since now compatibility is
handled in a single function instead of cluttering each operation.

Reported-by: Marc Dionne <marc.c.dionne@gmail.com>
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Fixes: 7078187a795f ("fuse: introduce fuse_simple_request() helper")
2015-01-06 10:45:35 +01:00
..
2014-11-19 13:01:20 -05:00
2014-11-19 13:01:20 -05:00
2014-12-13 12:42:51 -08:00
2014-08-08 15:57:24 -07:00
2014-11-19 13:01:20 -05:00
2014-12-17 18:47:01 -08:00
2014-11-19 13:01:20 -05:00
2014-12-14 16:10:09 -08:00
2014-12-18 19:08:10 -08:00
2014-08-07 14:40:09 -04:00
2014-11-28 18:23:44 -08:00
2014-11-19 13:01:20 -05:00
2014-12-18 19:08:11 -08:00
2014-12-14 16:10:09 -08:00
2014-12-21 22:42:37 +01:00
2014-12-12 09:48:17 -08:00
2014-08-07 14:40:09 -04:00
2014-11-19 13:01:20 -05:00
2014-12-08 20:39:29 -05:00
2014-10-24 00:14:38 +02:00
2014-12-10 21:31:59 -05:00
2014-12-18 11:22:02 -08:00
2014-05-06 17:39:42 -04:00
2014-04-01 23:19:08 -04:00
2014-08-26 09:35:56 +02:00
2014-11-10 10:06:18 +01:00
2014-11-19 13:01:25 -05:00
2014-11-19 13:01:26 -05:00