Index: iscsitarget-0.4.17/kernel/block-io.c =================================================================== --- iscsitarget-0.4.17/kernel/block-io.c (revision 198) +++ iscsitarget-0.4.17/kernel/block-io.c (working copy) @@ -13,6 +13,7 @@ #include #include #include +#include #include "iscsi.h" #include "iscsi_dbg.h" @@ -154,14 +155,22 @@ { struct blockio_data *bio_data = volume->private; struct block_device *bdev; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) int flags = LUReadonly(volume) ? MS_RDONLY : 0; +#else + fmode_t flags = LUReadonly(volume) ? FMODE_READ : (FMODE_READ | FMODE_WRITE); +#endif int err = 0; bio_data->path = kstrdup(path, GFP_KERNEL); if (!bio_data->path) return -ENOMEM; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) bdev = open_bdev_excl(path, flags, THIS_MODULE); +#else + bdev = open_bdev_exclusive(path, flags, THIS_MODULE); +#endif if (IS_ERR(bdev)) { err = PTR_ERR(bdev); eprintk("Can't open device %s, error %d\n", path, err); @@ -324,8 +333,17 @@ { struct blockio_data *bio_data = volume->private; - if (bio_data->bdev) + if (bio_data->bdev) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29) close_bdev_excl(bio_data->bdev); +#else + if (LUReadonly(volume)) { + close_bdev_exclusive(bio_data->bdev, FMODE_READ); + } else { + close_bdev_exclusive(bio_data->bdev, FMODE_READ|FMODE_WRITE); + } +#endif + } kfree(bio_data->path); kfree(volume->private); Index: iscsitarget-0.4.17/kernel/conn.c =================================================================== --- iscsitarget-0.4.17/kernel/conn.c (revision 198) +++ iscsitarget-0.4.17/kernel/conn.c (working copy) @@ -46,9 +46,13 @@ "%u.%u.%u.%u", NIPQUAD(inet_sk(sk)->daddr)); break; case AF_INET6: +#ifdef NIP6 snprintf(buf, sizeof(buf), "[%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x]", NIP6(inet6_sk(sk)->daddr)); +#else + snprintf(buf, sizeof(buf), "[%p6]", &inet6_sk(sk)->daddr); +#endif break; default: break;