[PATCH] drbd: always set BLK_FEAT_STABLE_WRITES
Christoph Hellwig
hch at infradead.org
Fri Feb 6 07:43:18 CET 2026
On Thu, Feb 05, 2026 at 06:39:29PM +0100, Christoph Böhmwalder wrote:
> DRBD requires stable pages because it may read the same bio data
> multiple times for local disk I/O and network transmission, and in
> some cases for calculating checksums.
>
> The BLK_FEAT_STABLE_WRITES flag is set when the device is first
> created, but blk_set_stacking_limits() clears it whenever a
> backing device is attached. In some cases the flag may be
> inherited from the backing device, but we want it to be enabled
> at all times.
This looks like a bug. If an underlying device requires
BLK_FEAT_STABLE_WRITES, the upper device needs to inherit it.
> Note: this commit is based on the for-6.19/block tree in case it is
> still possible to take it into the 6.19 release as this *could* lead
> to silent data corruption. However, due to other protection
> mechanisms in DRBD, this is relatively unlikely to happen in the
> real world and we have not seen any corresponding reports from users.
> So if this only lands in 6.20/7.0, it is also fine.
I'm fine with this as a hot fix for 6.19 and -stable:
Reviewed-by: Christoph Hellwig <hch at lst.de>
But can you please also do the proper block layer fix and then
revert the drbd one?
More information about the drbd-dev
mailing list