Re: [PATCH] block: use assign_bit() where applicable

From: Christoph Böhmwalder

Date: Mon Sep 21 2026 - 07:46:19 EST


On 9/18/26 16:16, Peng Fan (OSS) wrote:
From: Peng Fan <peng.fan@xxxxxxx>

Convert open-coded if/else with set_bit/clear_bit and their
non-atomic __set_bit/__clear_bit variants to the assign_bit/__assign_bit
API.

Done with Coccinelle semantic patch:
// set_bit -> clear_bit => assign_bit

@@
expression cond, bit, addr;
@@

-if (cond)
- set_bit(bit, addr);
-else
- clear_bit(bit, addr);
+assign_bit(bit, addr, cond);

// clear_bit -> set_bit => assign_bit

@@
expression cond, bit, addr;
@@

-if (cond)
- clear_bit(bit, addr);
-else
- set_bit(bit, addr);
+assign_bit(bit, addr, !cond);

// __set_bit -> __clear_bit => __assign_bit

@@
expression cond, bit, addr;
@@

-if (cond)
- __set_bit(bit, addr);
-else
- __clear_bit(bit, addr);
+__assign_bit(bit, addr, cond);

// __clear_bit -> __set_bit => __assign_bit

@@
expression cond, bit, addr;
@@

-if (cond)
- __clear_bit(bit, addr);
-else
- __set_bit(bit, addr);
+__assign_bit(bit, addr, !cond);

Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
---
drivers/block/drbd/drbd_nl.c | 16 ++++------------
drivers/block/drbd/drbd_receiver.c | 5 +----
drivers/block/floppy.c | 8 ++------
drivers/block/mtip32xx/mtip32xx.c | 6 ++----
4 files changed, 9 insertions(+), 26 deletions(-)
For DRBD:

Reviewed-by: Christoph Böhmwalder <christoph.boehmwalder@xxxxxxxxxx>

Regards,
Christoph