- 論壇徽章:
- 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,不敢獨享,也為了方便需要的人。先將修改內(nèi)容呈現(xiàn)出來。
A.kernel/conn.c
B.kernel/blok_io.c
A.conn.c文件修改
1.增加#include <linux/ipv6.h>
2..修改。 大概在51行,對NIP6支持的變化(IPv6).
原來的函數(shù)為:
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.修改函數(shù)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.函數(shù)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]] |
|