On Tue, Apr 04, 2017 at 06:59:19PM +0800, Anand Jain wrote:
>
>
> On 04/03/2017 08:06 PM, David Sterba wrote:
> > Please update the changelog to say why it's ok to remove it, eg. the
> > commit that removed the last user.
> >
> > commit b25de9d6da49b1a8760a89672283128aa8c78345
> > Author: Christoph Hellwig <hch@xxxxxx>
> > Date: Fri Apr 24 21:41:01 2015 +0200
> >
> > block: remove BIO_EOPNOTSUPP
>
> Ah. I should have search the commit log. sorry about that.
>
>
> IMO, there is a bug in generic_make_request_checks() in which
> it should rather return EOPNOTSUPP, instead of EIO if QUEUE_FLAG_WC
> is not supported.
I think it works as intended, ie. it's not a bug. The code has been
added to avoid reporting an error code in the mentioned case. See
generic_make_request that would exit, or need to handle EOPNOTSUPP each
time. If you still think this is a bug, please report it to the
blocklayer maintainers.
> ------------------------------------------------
> 1853 static noinline_for_stack bool
> 1854 generic_make_request_checks(struct bio *bio)
> 1855 {
> ::
>
> 1892 /*
> 1893 * Filter flush bio's early so that make_request based
> 1894 * drivers without flush support don't have to worry
> 1895 * about them.
> 1896 */
> 1897 if ((bio->bi_opf & (REQ_PREFLUSH | REQ_FUA)) &&
> 1898 !test_bit(QUEUE_FLAG_WC, &q->queue_flags)) {
> 1899 bio->bi_opf &= ~(REQ_PREFLUSH | REQ_FUA);
> 1900 if (!nr_sectors) {
> 1901 err = 0;
> 1902 goto end_io; <- this should goto not_supported
> 1903 }
> 1904 }
>
> ::
>
> 1946 not_supported:
> 1947 err = -EOPNOTSUPP;
> ------------------------------------------------
>
>
> Pls ignore this patch.
>
> I have submitted
> [PATCH] btrfs: check if the device is flush capable
>
> which will remain unaffected by the above bug/not-a-bug
> in the blk core code.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html