具体看源码中include/linux/blkdev.h
req->sectors ------------- > blk_rq_pos(req)
req->sectors ------------- > blk_rq_pos(req)
req->nr_sectros --------------- > blk_rq_sectors(req)
req->current_nr_sectors --------------------> blk_rq_cur_sectors(req)
elv_next_request --------------------> blk_fetch_request
end_request --------------------> __blk_end_request_cur 或blk_end_request_cur
两者的区别在于前者不会去获取队列锁,后者会尝试获取队列锁,用后者会导致系统死锁,并使系统崩溃(我在测试的时候就是这样).前者无返回值,后者返回bool
__blk_end_request_all 或blk_end_request_all同上,cur和all的区别在于cur结束的可能是一个请求的一块,而all是结束整个请求。
request->buffer被取消了,换成什么我看了源码也看不出来,查也查不到