Re: kill req->errors V4
On Thu, Apr 20 2017, Christoph Hellwig wrote: > Currently the request structure has an errors field that is used in > various different ways. The oldest drivers use it as an error count, > blk-mq and the generic timeout code assume that it holds a Linux > errno for block completions, and various drivers use it for internal > status values, often overwriting them with Linux errnos later, > that is unless they are processing passthrough requests in which > case they'll leave their errors in it. > > This series kills the ->errors field and replaced it with new fields > in the drivers (or an odd hack in a union in struct request for > two bitrotting old drivers). Applied for 4.12, thanks. -- Jens Axboe
kill req->errors V4
Currently the request structure has an errors field that is used in various different ways. The oldest drivers use it as an error count, blk-mq and the generic timeout code assume that it holds a Linux errno for block completions, and various drivers use it for internal status values, often overwriting them with Linux errnos later, that is unless they are processing passthrough requests in which case they'll leave their errors in it. This series kills the ->errors field and replaced it with new fields in the drivers (or an odd hack in a union in struct request for two bitrotting old drivers). Also available in the following git tree: git://git.infradead.org/users/hch/block.git request-errors Gitweb: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/request-errors Changes since V3: - SCSI OSD fix - Various Reviewed-by: tags Changes since V2; - reorder one patch to be earlier in the series - fix the argument to a bsg dprintk - fix a kerneldoc comment Changes since V1: - rebased on top the latest block for-next tree - fix error handling in nfsd blocklayout - dropped "scsi: fix fast-fail for non-passthrough requests"
kill req->errors V3
Currently the request structure has an errors field that is used in various different ways. The oldest drivers use it as an error count, blk-mq and the generic timeout code assume that it holds a Linux errno for block completions, and various drivers use it for internal status values, often overwriting them with Linux errnos later, that is unless they are processing passthrough requests in which case they'll leave their errors in it. This series kills the ->errors field and replaced it with new fields in the drivers (or an odd hack in a union in struct request for two bitrotting old drivers). Also available in the following git tree: git://git.infradead.org/users/hch/block.git request-errors Gitweb: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/request-errors Changes since V2; - reorder one patch to be earlier in the series - fix the argument to a bsg dprintk - fix a kerneldoc comment Changes since V1: - rebased on top the latest block for-next tree - fix error handling in nfsd blocklayout - dropped "scsi: fix fast-fail for non-passthrough requests"
kill req->errors V3
Currently the request structure has an errors field that is used in various different ways. The oldest drivers use it as an error count, blk-mq and the generic timeout code assume that it holds a Linux errno for block completions, and various drivers use it for internal status values, often overwriting them with Linux errnos later, that is unless they are processing passthrough requests in which case they'll leave their errors in it. This series kills the ->errors field and replaced it with new fields in the drivers (or an odd hack in a union in struct request for two bitrotting old drivers). Also available in the following git tree: git://git.infradead.org/users/hch/block.git request-errors Gitweb: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/request-errors Changes since V2; - reorder one patch to be earlier in the series - fix the argument to a bsg dprintk - fix a kerneldoc comment Changes since V1: - rebased on top the latest block for-next tree - fix error handling in nfsd blocklayout - dropped "scsi: fix fast-fail for non-passthrough requests"
kill req->errors V2
Currently the request structure has an errors field that is used in various different ways. The oldest drivers use it as an error count, blk-mq and the generic timeout code assume that it holds a Linux errno for block completions, and various drivers use it for internal status values, often overwriting them with Linux errnos later, that is unless they are processing passthrough requests in which case they'll leave their errors in it. This series kills the ->errors field and replaced it with new fields in the drivers (or an odd hack in a union in struct request for two bitrotting old drivers). Also available in the following git tree: git://git.infradead.org/users/hch/block.git request-errors Gitweb: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/request-errors Changes since V1: - rebased on top the latest block for-next tree - fix error handling in nfsd blocklayout - dropped "scsi: fix fast-fail for non-passthrough requests"
Re: kill req->errors
On Fri, Apr 07, 2017 at 09:11:24AM +0200, Christoph Hellwig wrote: > On Thu, Apr 06, 2017 at 04:00:24PM -0400, Konrad Rzeszutek Wilk wrote: > > You wouldn't have a git tree to easily test it? Thanks. > > git://git.infradead.org/users/hch/block.git request-errors > > Gitweb: > > http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/request-errors I tested it with Xen and it all worked out. Albeit in hindsight I didn't check the ones that matter - that is the error paths (duh!). So let me do that now.
Re: kill req->errors
Any more comments on these patches? I'd like to make some progress on this work.
Re: kill req->errors
On Thu, Apr 06, 2017 at 04:00:24PM -0400, Konrad Rzeszutek Wilk wrote: > You wouldn't have a git tree to easily test it? Thanks. Did you manage to give it a spin now that I pointed you to the git tree?
Re: kill req->errors
On Thu, Apr 06, 2017 at 04:00:24PM -0400, Konrad Rzeszutek Wilk wrote: > You wouldn't have a git tree to easily test it? Thanks. git://git.infradead.org/users/hch/block.git request-errors Gitweb: http://git.infradead.org/users/hch/block.git/shortlog/refs/heads/request-errors
Re: kill req->errors
On Thu, Apr 06, 2017 at 05:39:19PM +0200, Christoph Hellwig wrote: > Currently the request structure has an errors field that is used in > various different ways. The oldest drivers use it as an error count, > blk-mq and the generic timeout code assume that it holds a Linux > errno for block completions, and various drivers use it for internal > status values, often overwriting them with Linux errnos later, > that is unless they are processing passthrough requests in which > case they'll leave their errors in it. > > This series kills the ->errors field and replaced it with new fields > in the drivers (or an odd hack in a union in struct request for > two bitrotting old drivers). > > Note that this series expects that the patch to remove the mg_disk > driver has been applied already on top of the block for-next tree. You wouldn't have a git tree to easily test it? Thanks.
kill req->errors
Currently the request structure has an errors field that is used in various different ways. The oldest drivers use it as an error count, blk-mq and the generic timeout code assume that it holds a Linux errno for block completions, and various drivers use it for internal status values, often overwriting them with Linux errnos later, that is unless they are processing passthrough requests in which case they'll leave their errors in it. This series kills the ->errors field and replaced it with new fields in the drivers (or an odd hack in a union in struct request for two bitrotting old drivers). Note that this series expects that the patch to remove the mg_disk driver has been applied already on top of the block for-next tree.