About bio_endio

Pranay Srivastava pranjas at gmail.com
Tue Jun 24 01:07:23 EDT 2014


Hello Alvin,

On Mon, Jun 23, 2014 at 10:39 PM, Alvin Abitria <abitria.alvin at gmail.com> wrote:
> 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.

So it means you are just passing on the bios without the request
structure if I'm correct?
I don't know how you are handling blk_finish_plug without having
request or request queue,
I maybe wrong in understanding how you are handling it.

>
> 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,
-EIO is the one that you should use I think,
> 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

If it's okay for you to post the error then can you do that? I was
seeing the code for
dio_end_io but it would be good if you can post the exact crash
backtrace if you've got that.

> to me after reaching my queue depth and with no tags left, and so I want to
> use bio_endio with an error code.

If you have a request queue then you could call blk_stop_queue and
blk_start_queue but I don't know if this is
relevant to your case.

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

-EIO should work, but first let's find out why you got the crash.

>
>
>
> Sent from Samsung Mobile
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



-- 
        ---P.K.S



More information about the Kernelnewbies mailing list