Re: [PATCH 3/5] dm: support retrieving struct dm_target from struct dm_dev

From: YangYang
Date: Wed May 15 2024 - 22:12:43 EST


On 2024/5/16 0:00, Benjamin Marzinski wrote:
On Wed, May 15, 2024 at 11:42:04AM -0400, Benjamin Marzinski wrote:
When a target calls dm_get_device(), if it adds a new table device to
t->devices, then it's the first target in this table to use that device.
If flush_pass_around is set for this target, then it also sets
sends_pass_around_flush. In __send_empty_flush() if the table has
flush_pass_around set, when you iterate through the devices, you only

Err, "When you iterate through the *targets*, you only ..." In this
method you don't iterate through the list of devices (which is supposed
to be protected by t->devices_lock).

I'm not very familiar with this area, I thought that the device list
of an active table cannot be modified, so it doesn't need to be
protected by t->devices_lock.


call __send_empty_flush_bios() for the ones with sends_pass_around_flush
set.

Or am I overlooking something?

-Ben