[so2] [SO2] [Tema3] [Linux] Nelămuriri - CRC, locking, checker
Liviu Ioan
liviu.andrei.ioan at gmail.com
Sun Apr 21 13:17:57 EEST 2013
> As a sidenote, when in doubt, căutați utilizări ale funcției în cauză
> (bio_for_each_segment, în cazul nostru). E clar că în laborator o
> folosim greșit. Also, rq_for_each_segment nu pare să fie folosită
> niciodată în rutine de transfer. Suspectectez că nu _poate_ fi
> folosită, pentru că bio-urile dintr-un request nu corespund segmentelor
> consecutive.
Ah, mai multe bio-uri dintr-un request nu sunt (neapărat) continue pe
disc, așa e.
rq_for_each segment reprezintă:
__rq_for_each_bio
bio_for_each_segment
Ar trebui să facem cam așa(dacă e să lucrăm la nivel de request):
__rq_for_each_bio
fresh_offset = bio->bi_sector;
bio_for_each_segment
process segment using fresh_offset
fresh_offset += bio_cur_bytes
Cam "dubios" ce face rq_for_each_segment :).
Mulțumesc.
Liviu
More information about the so2
mailing list