免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1847 | 回复: 5

iscsitarget0.4.17 compiling under kernel 2.6.29 [复制链接]

论坛徽章:
0
发表于 2009-05-30 11:36 |显示全部楼层
OS:CentOS 5.2
Kernel update to:2.6.29
gcc :4.1.2-42iscsitarget:0.4.17

Acutuall,the source code from sf only can  compliled under 2.6.26.
with specific requirement of file system btrfs.so update the kernel to 2.6.29.4  with related patch.
then amend the souce code about two files.
遵从gpl-2,不敢独享,也为了方便需要的人。先将修改内容呈现出来。
A.kernel/conn.c
B.kernel/blok_io.c

A.conn.c文件修改
1.增加#include <linux/ipv6.h>

2..修改。 大概在51行,对NIP6支持的变化(IPv6).
原来的函数为:
                                   case AF_INET6:
                                   snprintf(buf, sizeof(buf),      
                                          "[%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x]", ]
                                         NIP6(inet6_sk(sk)->daddr));

修改后:
                                case AF_INET6:
                                    /*   snprintf(buf, sizeof(buf),      
                                        "[%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x]",     
                                       NIP6(inet6_sk(sk)->daddr));  */      
                                    
                                      snprintf(buf,sizeof(buf),"[%pI6]",                     
                                           &inet6_sk(sk)->daddr);

B.block_io.c 修改:158行左右:
1.修改函数blockio_open_path:
修改前:
                                 int flags = LUReadonly(volume) ? MS_RDONLY : 0;
修改后:
                                 fmode_t flags;      
                                 flags = LUReadonly(volume) ? FMODE_READ : (FMODE_READ | FMODE_WRITE);        
                              
                                 /*int flags = LUReadonly(volume) ? MS_RDONLY : 0; */      
                                int err = 0;

修改前:
                                  bdev = open_bdev_excl(path, flags, THIS_MODULE);
修改后:
                                  bdev = open_bdev_exclusive(path, flags, THIS_MODULE);

2.函数blockio_detach 338行左右。

修改前:
                                   close_bdev_excl(bio_data->bdev);

修改后:
                                    if (LUReadonly(volume)) {                       
                                     close_bdev_exclusive(bio_data->bdev, FMODE_READ);               
                                         } else {
                                                 close_bdev_exclusive(bio_data->bdev, FMODE_READ|FMODE_WRITE);
                                                 }

之后,编译成功。

[[i] 本帖最后由 rock0018 于 2009-5-30 11:44 编辑 [/i]]

论坛徽章:
0
发表于 2009-05-30 11:50 |显示全部楼层
如果需要兼容多个多kernel版本,可以加头文件linux/version.h.然后进行判断需要编译的平台,使用不同的参数,然后实现多kernel版本的兼容.具体的实现应该不难,有兴趣的朋友可以自己尝试.

论坛徽章:
5
寅虎
日期:2015-01-20 09:16:52亥猪
日期:2015-01-21 14:43:44IT运维版块每日发帖之星
日期:2015-12-17 06:20:00每日论坛发贴之星
日期:2015-12-17 06:20:00每周论坛发贴之星
日期:2015-12-20 22:22:00
发表于 2009-05-30 13:15 |显示全部楼层

论坛徽章:
0
发表于 2009-05-30 13:55 |显示全部楼层
有点难度。不敢轻易测试

论坛徽章:
0
发表于 2009-06-02 09:56 |显示全部楼层

回复 #1 rock0018 的帖子

内核模块的支持 这个是很突出的使用问题

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2009-06-02 09:58 |显示全部楼层
最好找patch文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP