LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 921|回复: 0

请高手解答:request-buffer与request中的bio是什么关系?

[复制链接]
发表于 2009-2-5 11:44:32 | 显示全部楼层 |阅读模式
最近看cowloop-3.0的源代码,对request有一些疑问,
在cowloop.c中的cowlo_do_request函数中对request处理时,直接把request中的buffer做为请求中的数据,
这个req->buffer与bio是什么关系,如何把bio中的数据映射到req->buffer中去的?

static long int
cowlo_do_request(struct request *req)
{
................
................
................
    len     =          req->current_nr_sectors << 9;
    offset  = (loff_t) req->sector             << 9;

................
................
................


    switch (rq_data_dir(req)) {
       /**********************************************************/
       case READ:
        switch ( cowlo_checkio(cowdev, len, offset) ) {
           case ALLCOW:
            rv = cowlo_readcow(cowdev, req->buffer, len, offset);
            break;

           case ALLRDO:
            rv = cowlo_readrdo(cowdev, req->buffer, len, offset);
            break;

           case MIXEDUP:
            rv = cowlo_readmix(cowdev, req->buffer, len, offset);
            break;

           default:
            rv = 0; /* never happens */
        }
        break;
................
................
................
    return (rv <= 0 ? 0 : 1);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表