loop device BH_Dirty bit
Hi All,
I am just curious to know the following.
Loop device ( drivers/block/loop.c) simply sets BH_Dirty flag as snippet shows.
and queues the buffer_head of WRITE requests. Why does it set BH_Dirty bit?
But understand ll_rw_block()(drivers/block/ll_rw_blk.c) function clears this flag in block I/O path to make_request_fn of loop device.
if (lo->lo_flags & LO_FLAGS_DO_BMAP) {
/*
* rbh locked at this point, noone else should clear
* the dirty flag
*/
if (rw == WRITE)
set_bit(BH_Dirty, &rbh->b_state);
loop_add_bh(lo, rbh);
return 0;
This bit is cleared after loop_thread processes queue requests.
Thanks for Any help.
-Kotresh.
|