Completion of cloned bios

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I've been looking at the block code related to bio completion and
there is one situation that I cannot explain to myself. Suppose that
we have an io which is submitted to an LVM device. The bio would start
its life  in submit_bh-->submit_bh_wbc. Where its bi_end_io member is
going to be set to end_bio_bh_io_sync. So far so great, however as the
bio progresses through the block layer it would eventually be cloned
in dm_make_request->__split_and_process_bio->
__split_and_process_non_flush->__clone_and_map_data_bio->clone_bio->__bio_clone_fast

What bugs me is that this cloned bio would be sent to device mapper
for completion, so the question whose answer I'm seeking is when is
the original bio completed, since at some point it's just being cloned
and its clones are being sent off down the storage stack? I was just
using dm as an example but I'm curios as to the general mechanism of
completing cloned bios, since in this situation what has to happen is
for the cloned bio to be completed and then the original one, no?

Regards,
Nikolay
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux