Re: [PATCH] block: add a bi_error field to struct bio

From: Jens Axboe
Date: Tue Jul 28 2015 - 10:33:52 EST


On 07/28/2015 05:12 AM, Christoph Hellwig wrote:
On Fri, Jul 24, 2015 at 10:36:45AM -0600, Jens Axboe wrote:
Right, I don't think we need to do that though. If you look at the flags
usage, it's all over the map. Some use test/set_bit, some set it just by
OR'ing the mask. There's no reason we can't make this work without relying
on set/test_bit, and then shrink it to an unsigned int.

Yes, the current mess doesn't look kosher. The bvec pool bits don't
really make it better.

But do we really need the cmpxchg hack? Seems like most flags aren't
exposed to concurrency at all, althugh this would need a careful audit.

I actually don't think that we do need it at all. With the uptodate bit gone, we really should not have any concurrency issues on it at all. CHAIN and REFFED need serialization, but that is already done previous to this change.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/