linux - Failing an IO/bio properly -
i'm developing block driver using the make_request method, effectively bypassing existing scsi or request stack in block layer. so that means im directly working with bios. as prescribed in linux documentation , referring to similar drivers in kernel, you close session a bio the bio_endio function.
i invoke bio_endio during successful i/o completion, meaning with error code of zero. but there cases not fulfilled or there error cases. my question is, valid error codes can be used it? my initial impression that other than zero error code, bio_endio will fail. i've read somewhere -ebusy not recognized, , tried -eio driver crashed. i got a panic in dio_xxx function leading bio_endio(bio,-eio) , have no thought why happened. i would like block subsequent bios sent me after reaching queue depth , no tags left, and i want utilize bio_endio error code.
what error codes, , will they work for intended function? or there better way aside bio_endio? thanks!
linux linux-kernel linux-device-driver
No comments:
Post a Comment