diff options
author | Manuel Bentele | 2020-08-28 14:50:51 +0200 |
---|---|---|
committer | Manuel Bentele | 2020-08-28 14:50:51 +0200 |
commit | 042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c (patch) | |
tree | 5957cd5d532ce311f85c2bb2d7a9a861da18cd35 /src/kernel/blk.c | |
parent | [KERNEL] convert to blk-mq and ktime (diff) | |
download | dnbd3-042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c.tar.gz dnbd3-042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c.tar.xz dnbd3-042b7ca9932f05ed7c69efc7b15fa58e42c6eb3c.zip |
[KERNEL] convert debug messages and clean up code
This change converts all debug messages to support the Linux kernel's
dynamic debug feature. Debug messages can be enabled or disabled by
the debug feature if the
- kernel module is built in debug mode (EXTRA_CFLAGS=-g -DDEBUG)
- Linux kernel supports dynamic debug (CONFIG_DYNAMIC_DEBUG is set)
This patch removes outdated kernel compatibility macros (used for Linux
kernels in version 4.x) and cleans up the kernel module's code.
Diffstat (limited to 'src/kernel/blk.c')
-rw-r--r-- | src/kernel/blk.c | 38 |
1 files changed, 9 insertions, 29 deletions
diff --git a/src/kernel/blk.c b/src/kernel/blk.c index dde8dea..2c46b67 100644 --- a/src/kernel/blk.c +++ b/src/kernel/blk.c @@ -25,21 +25,12 @@ #include <linux/pagemap.h> -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) #define dnbd3_req_read(req) \ req_op(req) == REQ_OP_READ #define dnbd3_req_fs(req) \ dnbd3_req_read(req) || req_op(req) == REQ_OP_WRITE #define dnbd3_req_special(req) \ blk_rq_is_private(req) -#else -#define dnbd3_req_read(req) \ - rq_data_dir(req) == READ -#define dnbd3_req_fs(req) \ - req->cmd_type == REQ_TYPE_FS -#define dnbd3_req_special(req) \ - req->cmd_type == REQ_TYPE_SPECIAL -#endif static int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) { @@ -48,12 +39,8 @@ static int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int struct request_queue *blk_queue = dev->disk->queue; char *imgname = NULL; dnbd3_ioctl_t *msg = NULL; - //unsigned long irqflags; - while (dev->disconnecting) - { - // do nothing - } + while (dev->disconnecting) { /* do nothing */ } if (arg != 0) { @@ -83,7 +70,6 @@ static int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int goto cleanup_return; } imgname[msg->imgnamelen] = '\0'; - //printk("IOCTL Image name of len %d is %s\n", (int)msg->imgnamelen, imgname); } } @@ -106,7 +92,7 @@ static int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int else { if (sizeof(msg->host) != sizeof(dev->cur_server.host)) - printk("Odd size bug#1 triggered in IOCTL\n"); + dev_info(dnbd3_device_to_dev(dev), "odd size bug triggered in IOCTL\n"); memcpy(&dev->cur_server.host, &msg->host, sizeof(msg->host)); dev->cur_server.failures = 0; memcpy(&dev->initial_server, &dev->cur_server, sizeof(dev->initial_server)); @@ -116,13 +102,11 @@ static int dnbd3_blk_ioctl(struct block_device *bdev, fmode_t mode, unsigned int // Forget all alt servers on explicit connect, set first al server to initial server memset(dev->alt_servers, 0, sizeof(dev->alt_servers[0])*NUMBER_SERVERS); memcpy(dev->alt_servers, &dev->initial_server, sizeof(dev->alt_servers[0])); -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) + if (blk_queue->backing_dev_info != NULL) { blk_queue->backing_dev_info->ra_pages = (msg->read_ahead_kb * 1024) / PAGE_SIZE; } -#else - blk_queue->backing_dev_info.ra_pages = (msg->read_ahead_kb * 1024) / PAGE_SIZE; -#endif + if (dnbd3_net_connect(dev) == 0) { result = 0; @@ -284,7 +268,7 @@ int dnbd3_blk_add_device(dnbd3_device_t *dev, int minor) ret = blk_mq_alloc_tag_set(&dev->tag_set); if (ret) { - printk(KERN_ERR "ERROR: dnbd3 blk_mq_alloc_tag_set failed.\n"); + dev_err(dnbd3_device_to_dev(dev), "blk_mq_alloc_tag_set failed\n"); goto out; } @@ -292,19 +276,15 @@ int dnbd3_blk_add_device(dnbd3_device_t *dev, int minor) dev->queue = blk_mq_init_queue(&dev->tag_set); if (IS_ERR(dev->queue)) { ret = PTR_ERR(dev->queue); + dev_err(dnbd3_device_to_dev(dev), "blk_mq_init_queue failed\n"); goto out_cleanup_tags; } dev->queue->queuedata = dev; blk_queue_logical_block_size(dev->queue, DNBD3_BLOCK_SIZE); blk_queue_physical_block_size(dev->queue, DNBD3_BLOCK_SIZE); - -#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 17, 0) blk_queue_flag_set(QUEUE_FLAG_NONROT, dev->queue); blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, dev->queue); -#else - queue_flag_set_unlocked(QUEUE_FLAG_NONROT, dev->queue); -#endif #define ONE_MEG (1048576) blk_queue_max_segment_size(dev->queue, ONE_MEG); blk_queue_max_segments(dev->queue, 0xffff); @@ -315,7 +295,7 @@ int dnbd3_blk_add_device(dnbd3_device_t *dev, int minor) // set up disk if (!(dev->disk = alloc_disk(1))) { - printk(KERN_ERR "ERROR: dnbd3 alloc_disk failed.\n"); + dev_err(dnbd3_device_to_dev(dev), "alloc_disk failed\n"); ret = -ENOMEM; goto out_cleanup_queue; } @@ -374,7 +354,7 @@ void dnbd3_blk_fail_all_requests(dnbd3_device_t *dev) { if (blk_request == blk_request2) { - printk("WARNING: Request is in both lists!\n"); + dev_warn(dnbd3_device_to_dev(dev), "request is in both lists\n"); dup = 1; break; } @@ -392,7 +372,7 @@ void dnbd3_blk_fail_all_requests(dnbd3_device_t *dev) { if (blk_request == blk_request2) { - printk("WARNING: Request is in both lists!\n"); + dev_warn(dnbd3_device_to_dev(dev), "request is in both lists\n"); dup = 1; break; } |