From 36cf3a03b229eef31bcb53e7b9b09f829010f8dc Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 20 Aug 2010 10:24:13 +0200 Subject: working with current kernel, ifdef switch for other kernel versions needs to be implemented --- kernel/devices.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'kernel/devices.c') diff --git a/kernel/devices.c b/kernel/devices.c index cf89851..acf87e1 100644 --- a/kernel/devices.c +++ b/kernel/devices.c @@ -45,14 +45,14 @@ int start_device(dnbd2_device_t *dev) /* Start sending thread. */ dev->tx_signal = 0; - dev->tx_id = kernel_thread(dnbd2_tx_loop, dev, CLONE_KERNEL); - if (dev->tx_id < 0) { + dev->dnbd_device_thread_task = kthread_run(dnbd2_tx_loop, dev, "DNBD2DEV"); + if (IS_ERR(dev->dnbd_device_thread_task)){ del_timer(&dev->hb_timer); del_timer(&dev->to_timer); del_timer(&dev->requeue_timer); return -1; } - wait_for_completion(&dev->tx_start); +// wait_for_completion(&dev->tx_start); return 0; } @@ -77,7 +77,8 @@ void stop_device(dnbd2_device_t *dev) del_timer(&dev->requeue_timer); dev->tx_signal = 1; #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27) - kill_proc_info(SIGKILL, 1, dev->tx_id); + //kill_proc_info(SIGKILL, 1, dev->tx_id); + kthread_stop(dev->dnbd_device_thread_task); #else kill_proc(dev->tx_id, SIGKILL, 1); #endif @@ -194,7 +195,7 @@ int add_device(dnbd2_device_t *dev, int minor) */ blk_queue_max_sectors(queue, DNBD2_BLOCK_SIZE/SECTOR_SIZE); blk_queue_max_segment_size(queue, DNBD2_BLOCK_SIZE); - blk_queue_hardsect_size(queue, DNBD2_BLOCK_SIZE); + blk_queue_logical_block_size(queue, DNBD2_BLOCK_SIZE); blk_queue_max_phys_segments(queue, 1); blk_queue_max_hw_segments(queue, 1); disk->queue = queue; -- cgit v1.2.3-55-g7522