Searched hist:"21 f621741a770c119e7529a3f5c0e6b7c91383a3" (Results 1 – 3 of 3) sorted by relevance
/openbmc/linux/fs/fuse/ |
H A D | dev.c | diff 21f621741a770c119e7529a3f5c0e6b7c91383a3 Tue Jan 06 03:45:35 CST 2015 Miklos Szeredi <mszeredi@suse.cz> 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")
|
H A D | inode.c | diff 21f621741a770c119e7529a3f5c0e6b7c91383a3 Tue Jan 06 03:45:35 CST 2015 Miklos Szeredi <mszeredi@suse.cz> 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")
|
H A D | dir.c | diff 21f621741a770c119e7529a3f5c0e6b7c91383a3 Tue Jan 06 03:45:35 CST 2015 Miklos Szeredi <mszeredi@suse.cz> 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")
|