About bio_endio

Alvin Abitria abitria.alvin at gmail.com
Mon Jun 23 13:09:39 EDT 2014


Hello,

I'm developing a 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 and from referring to similar drivers in kernel, you close a session with a bio with the bio_endio function.

I usually invoke bio_endio during successful I/O completion, meaning with an error code of zero.  But there are cases that this is not fulfilled or there are error cases.  My question is, what are the valid error codes that can be used with it?  My initial impression is that other than zero as error code, bio_endio will fail.  I've read somewhere that -EBUSY is not recognized, and I tried -EIO but my driver crashed.  I got a panic in some dio_xxx function leading from bio_endio(bio,-EIO). I would like to block subsequent bios sent to me after reaching my queue depth and with no tags left, and so I want to use bio_endio with an error code.

What are those error codes, and will they work for my intended function?  Thanks!



Sent from Samsung Mobile
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140624/348e6e08/attachment.html 


More information about the Kernelnewbies mailing list