- 论坛徽章:
- 0
|
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]] |
|