* [PATCH v2 0/9] nbd: cleanups
@ 2015-03-12 13:35 Markus Pargmann
2015-03-12 13:35 ` [PATCH v2 1/9] Documentation: nbd: Reformat to allow more documentation Markus Pargmann
` (8 more replies)
0 siblings, 9 replies; 15+ messages in thread
From: Markus Pargmann @ 2015-03-12 13:35 UTC (permalink / raw)
To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann
Hi,
v2 fixes the dev_dbg outputs to contain the device name only once.
For the moment I would prefer to use dev_dbg instead of the previous
implementation of categorized outputs as it seems more flexible without code
modification. As soon as there is a generic framework for categorized dev_dbg
I am happy to use that.
Patch 3 removes the internal kernel header of nbd as it is only used for nbd.c.
We can define the device struct at the top of nbd.c instead.
Patch 6 replaces the previously used dprint macro with dev_dbg. dev_dbg()
should work as well as dprint did.
The other patches change some minor things.
Best Regards,
Markus
Markus Pargmann (9):
Documentation: nbd: Reformat to allow more documentation
Documentation: nbd: Add list of module parameters
nbd: Remove kernel internal header
nbd: Replace kthread_create with kthread_run
nbd: Fix device bytesize type
nbd: Restructure debugging prints
nbd: Remove fixme that was already fixed
nbd: Return error code directly
nbd: Return error pointer directly
Documentation/blockdev/nbd.txt | 48 +++++++++-----
drivers/block/nbd.c | 140 ++++++++++++++++-------------------------
include/linux/nbd.h | 46 --------------
3 files changed, 86 insertions(+), 148 deletions(-)
delete mode 100644 include/linux/nbd.h
--
2.1.4
^ permalink raw reply [flat|nested] 15+ messages in thread* [PATCH v2 1/9] Documentation: nbd: Reformat to allow more documentation 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann @ 2015-03-12 13:35 ` Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 2/9] Documentation: nbd: Add list of module parameters Markus Pargmann ` (7 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:35 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann Reformat the existing documentation to have more structure. This allows for more documentation seperated from the existing paragraphs. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- Documentation/blockdev/nbd.txt | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/Documentation/blockdev/nbd.txt b/Documentation/blockdev/nbd.txt index 271e607304da..337946bd460e 100644 --- a/Documentation/blockdev/nbd.txt +++ b/Documentation/blockdev/nbd.txt @@ -1,17 +1,21 @@ - Network Block Device (TCP version) - - What is it: With this compiled in the kernel (or as a module), Linux - can use a remote server as one of its block devices. So every time - the client computer wants to read, e.g., /dev/nb0, it sends a - request over TCP to the server, which will reply with the data read. - This can be used for stations with low disk space (or even diskless) - to borrow disk space from another computer. - Unlike NFS, it is possible to put any filesystem on it, etc. +Network Block Device (TCP version) +================================== - For more information, or to download the nbd-client and nbd-server - tools, go to http://nbd.sf.net/. +1) Overview +----------- - The nbd kernel module need only be installed on the client - system, as the nbd-server is completely in userspace. In fact, - the nbd-server has been successfully ported to other operating - systems, including Windows. +What is it: With this compiled in the kernel (or as a module), Linux +can use a remote server as one of its block devices. So every time +the client computer wants to read, e.g., /dev/nb0, it sends a +request over TCP to the server, which will reply with the data read. +This can be used for stations with low disk space (or even diskless) +to borrow disk space from another computer. +Unlike NFS, it is possible to put any filesystem on it, etc. + +For more information, or to download the nbd-client and nbd-server +tools, go to http://nbd.sf.net/. + +The nbd kernel module need only be installed on the client +system, as the nbd-server is completely in userspace. In fact, +the nbd-server has been successfully ported to other operating +systems, including Windows. -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 2/9] Documentation: nbd: Add list of module parameters 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann 2015-03-12 13:35 ` [PATCH v2 1/9] Documentation: nbd: Reformat to allow more documentation Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 3/9] nbd: Remove kernel internal header Markus Pargmann ` (6 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann Add a list of available module parameters as attachment to the documentation. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- Documentation/blockdev/nbd.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Documentation/blockdev/nbd.txt b/Documentation/blockdev/nbd.txt index 337946bd460e..db242ea2bce8 100644 --- a/Documentation/blockdev/nbd.txt +++ b/Documentation/blockdev/nbd.txt @@ -19,3 +19,13 @@ The nbd kernel module need only be installed on the client system, as the nbd-server is completely in userspace. In fact, the nbd-server has been successfully ported to other operating systems, including Windows. + +A) NBD parameters +----------------- + +max_part + Number of partitions per device (default: 0). + +nbds_max + Number of block devices that should be initialized (default: 16). + -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 3/9] nbd: Remove kernel internal header 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann 2015-03-12 13:35 ` [PATCH v2 1/9] Documentation: nbd: Reformat to allow more documentation Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 2/9] Documentation: nbd: Add list of module parameters Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 4/9] nbd: Replace kthread_create with kthread_run Markus Pargmann ` (5 subsequent siblings) 8 siblings, 0 replies; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann The header is not included anywhere. Remove it and include the private nbd_device struct in nbd.c. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- drivers/block/nbd.c | 22 ++++++++++++++++++++++ include/linux/nbd.h | 46 ---------------------------------------------- 2 files changed, 22 insertions(+), 46 deletions(-) delete mode 100644 include/linux/nbd.h diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 4bc2a5cb9935..58c2b20ad17b 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -38,6 +38,28 @@ #include <linux/nbd.h> +struct nbd_device { + int flags; + int harderror; /* Code of hard error */ + struct socket * sock; /* If == NULL, device is not ready, yet */ + int magic; + + spinlock_t queue_lock; + struct list_head queue_head; /* Requests waiting result */ + struct request *active_req; + wait_queue_head_t active_wq; + struct list_head waiting_queue; /* Requests to be sent */ + wait_queue_head_t waiting_wq; + + struct mutex tx_lock; + struct gendisk *disk; + int blksize; + u64 bytesize; + pid_t pid; /* pid of nbd-client, if attached */ + int xmit_timeout; + int disconnect; /* a disconnect has been requested by user */ +}; + #define NBD_MAGIC 0x68797548 #ifdef NDEBUG diff --git a/include/linux/nbd.h b/include/linux/nbd.h deleted file mode 100644 index f62f78aef4ac..000000000000 --- a/include/linux/nbd.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 1999 Copyright (C) Pavel Machek, pavel@ucw.cz. This code is GPL. - * 1999/11/04 Copyright (C) 1999 VMware, Inc. (Regis "HPReg" Duchesne) - * Made nbd_end_request() use the io_request_lock - * 2001 Copyright (C) Steven Whitehouse - * New nbd_end_request() for compatibility with new linux block - * layer code. - * 2003/06/24 Louis D. Langholtz <ldl@aros.net> - * Removed unneeded blksize_bits field from nbd_device struct. - * Cleanup PARANOIA usage & code. - * 2004/02/19 Paul Clements - * Removed PARANOIA, plus various cleanup and comments - */ -#ifndef LINUX_NBD_H -#define LINUX_NBD_H - - -#include <linux/wait.h> -#include <linux/mutex.h> -#include <uapi/linux/nbd.h> - -struct request; - -struct nbd_device { - int flags; - int harderror; /* Code of hard error */ - struct socket * sock; /* If == NULL, device is not ready, yet */ - int magic; - - spinlock_t queue_lock; - struct list_head queue_head; /* Requests waiting result */ - struct request *active_req; - wait_queue_head_t active_wq; - struct list_head waiting_queue; /* Requests to be sent */ - wait_queue_head_t waiting_wq; - - struct mutex tx_lock; - struct gendisk *disk; - int blksize; - u64 bytesize; - pid_t pid; /* pid of nbd-client, if attached */ - int xmit_timeout; - int disconnect; /* a disconnect has been requested by user */ -}; - -#endif -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 4/9] nbd: Replace kthread_create with kthread_run 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann ` (2 preceding siblings ...) 2015-03-12 13:36 ` [PATCH v2 3/9] nbd: Remove kernel internal header Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 5/9] nbd: Fix device bytesize type Markus Pargmann ` (4 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann kthread_run includes the wake_up_process() call, so instead of kthread_create() followed by wake_up_process() we can use this macro. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- drivers/block/nbd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 58c2b20ad17b..c07160c25a94 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -728,13 +728,13 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, else blk_queue_flush(nbd->disk->queue, 0); - thread = kthread_create(nbd_thread, nbd, "%s", - nbd->disk->disk_name); + thread = kthread_run(nbd_thread, nbd, "%s", + nbd->disk->disk_name); if (IS_ERR(thread)) { mutex_lock(&nbd->tx_lock); return PTR_ERR(thread); } - wake_up_process(thread); + error = nbd_do_it(nbd); kthread_stop(thread); -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 4/9] nbd: Replace kthread_create with kthread_run 2015-03-12 13:36 ` [PATCH v2 4/9] nbd: Replace kthread_create with kthread_run Markus Pargmann @ 2015-03-16 21:11 ` Pavel Machek 0 siblings, 0 replies; 15+ messages in thread From: Pavel Machek @ 2015-03-16 21:11 UTC (permalink / raw) To: Markus Pargmann; +Cc: nbd-general, linux-kernel, Joe Perches, Wouter Verhelst On Thu 2015-03-12 14:36:02, Markus Pargmann wrote: > kthread_run includes the wake_up_process() call, so instead of > kthread_create() followed by wake_up_process() we can use this macro. > > Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 5/9] nbd: Fix device bytesize type 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann ` (3 preceding siblings ...) 2015-03-12 13:36 ` [PATCH v2 4/9] nbd: Replace kthread_create with kthread_run Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 6/9] nbd: Restructure debugging prints Markus Pargmann ` (3 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann The block subsystem uses loff_t to store the device size. Change the type for nbd_device bytesize to loff_t. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- drivers/block/nbd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index c07160c25a94..13c8371cbf4c 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -32,6 +32,7 @@ #include <net/sock.h> #include <linux/net.h> #include <linux/kthread.h> +#include <linux/types.h> #include <asm/uaccess.h> #include <asm/types.h> @@ -54,7 +55,7 @@ struct nbd_device { struct mutex tx_lock; struct gendisk *disk; int blksize; - u64 bytesize; + loff_t bytesize; pid_t pid; /* pid of nbd-client, if attached */ int xmit_timeout; int disconnect; /* a disconnect has been requested by user */ -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 5/9] nbd: Fix device bytesize type 2015-03-12 13:36 ` [PATCH v2 5/9] nbd: Fix device bytesize type Markus Pargmann @ 2015-03-16 21:11 ` Pavel Machek 0 siblings, 0 replies; 15+ messages in thread From: Pavel Machek @ 2015-03-16 21:11 UTC (permalink / raw) To: Markus Pargmann; +Cc: nbd-general, linux-kernel, Joe Perches, Wouter Verhelst On Thu 2015-03-12 14:36:03, Markus Pargmann wrote: > The block subsystem uses loff_t to store the device size. Change the > type for nbd_device bytesize to loff_t. > > Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 6/9] nbd: Restructure debugging prints 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann ` (4 preceding siblings ...) 2015-03-12 13:36 ` [PATCH v2 5/9] nbd: Fix device bytesize type Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 7/9] nbd: Remove fixme that was already fixed Markus Pargmann ` (2 subsequent siblings) 8 siblings, 1 reply; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann dprintk has some name collisions with other frameworks and drivers. It is also not necessary to have these custom debug print filters. Dynamic debug offers the same amount of filtered debugging. This patch replaces all dprintks with dev_dbg(). It also removes the ioctl dprintk which prints the ingoing ioctls which should be replaceable by strace or similar stuff. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- Notes: Changes in v2: - The device name was written twice in each print. This is fixed by removing the explicit print of the disk name. - dev_dbg() in do_nbd_request() was moved to have a valid nbd pointer drivers/block/nbd.c | 88 ++++++++++++++--------------------------------------- 1 file changed, 22 insertions(+), 66 deletions(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 13c8371cbf4c..217b570dd7a5 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -63,21 +63,6 @@ struct nbd_device { #define NBD_MAGIC 0x68797548 -#ifdef NDEBUG -#define dprintk(flags, fmt...) -#else /* NDEBUG */ -#define dprintk(flags, fmt...) do { \ - if (debugflags & (flags)) printk(KERN_DEBUG fmt); \ -} while (0) -#define DBG_IOCTL 0x0004 -#define DBG_INIT 0x0010 -#define DBG_EXIT 0x0020 -#define DBG_BLKDEV 0x0100 -#define DBG_RX 0x0200 -#define DBG_TX 0x0400 -static unsigned int debugflags; -#endif /* NDEBUG */ - static unsigned int nbds_max = 16; static struct nbd_device *nbd_dev; static int max_part; @@ -94,25 +79,9 @@ static int max_part; */ static DEFINE_SPINLOCK(nbd_lock); -#ifndef NDEBUG -static const char *ioctl_cmd_to_ascii(int cmd) +static inline struct device *nbd_to_dev(struct nbd_device *nbd) { - switch (cmd) { - case NBD_SET_SOCK: return "set-sock"; - case NBD_SET_BLKSIZE: return "set-blksize"; - case NBD_SET_SIZE: return "set-size"; - case NBD_SET_TIMEOUT: return "set-timeout"; - case NBD_SET_FLAGS: return "set-flags"; - case NBD_DO_IT: return "do-it"; - case NBD_CLEAR_SOCK: return "clear-sock"; - case NBD_CLEAR_QUE: return "clear-que"; - case NBD_PRINT_DEBUG: return "print-debug"; - case NBD_SET_SIZE_BLOCKS: return "set-size-blocks"; - case NBD_DISCONNECT: return "disconnect"; - case BLKROSET: return "set-read-only"; - case BLKFLSBUF: return "flush-buffer-cache"; - } - return "unknown"; + return disk_to_dev(nbd->disk); } static const char *nbdcmd_to_ascii(int cmd) @@ -126,16 +95,15 @@ static const char *nbdcmd_to_ascii(int cmd) } return "invalid"; } -#endif /* NDEBUG */ -static void nbd_end_request(struct request *req) +static void nbd_end_request(struct nbd_device *nbd, struct request *req) { int error = req->errors ? -EIO : 0; struct request_queue *q = req->q; unsigned long flags; - dprintk(DBG_BLKDEV, "%s: request %p: %s\n", req->rq_disk->disk_name, - req, error ? "failed" : "done"); + dev_dbg(nbd_to_dev(nbd), "request %p: %s\n", req, + error ? "failed" : "done"); spin_lock_irqsave(q->queue_lock, flags); __blk_end_request_all(req, error); @@ -276,11 +244,9 @@ static int nbd_send_req(struct nbd_device *nbd, struct request *req) } memcpy(request.handle, &req, sizeof(req)); - dprintk(DBG_TX, "%s: request %p: sending control (%s@%llu,%uB)\n", - nbd->disk->disk_name, req, - nbdcmd_to_ascii(nbd_cmd(req)), - (unsigned long long)blk_rq_pos(req) << 9, - blk_rq_bytes(req)); + dev_dbg(nbd_to_dev(nbd), "request %p: sending control (%s@%llu,%uB)\n", + req, nbdcmd_to_ascii(nbd_cmd(req)), + (unsigned long long)blk_rq_pos(req) << 9, blk_rq_bytes(req)); result = sock_xmit(nbd, 1, &request, sizeof(request), (nbd_cmd(req) == NBD_CMD_WRITE) ? MSG_MORE : 0); if (result <= 0) { @@ -300,8 +266,8 @@ static int nbd_send_req(struct nbd_device *nbd, struct request *req) flags = 0; if (!rq_iter_last(bvec, iter)) flags = MSG_MORE; - dprintk(DBG_TX, "%s: request %p: sending %d bytes data\n", - nbd->disk->disk_name, req, bvec.bv_len); + dev_dbg(nbd_to_dev(nbd), "request %p: sending %d bytes data\n", + req, bvec.bv_len); result = sock_send_bvec(nbd, &bvec, flags); if (result <= 0) { dev_err(disk_to_dev(nbd->disk), @@ -394,8 +360,7 @@ static struct request *nbd_read_stat(struct nbd_device *nbd) return req; } - dprintk(DBG_RX, "%s: request %p: got reply\n", - nbd->disk->disk_name, req); + dev_dbg(nbd_to_dev(nbd), "request %p: got reply\n", req); if (nbd_cmd(req) == NBD_CMD_READ) { struct req_iterator iter; struct bio_vec bvec; @@ -408,8 +373,8 @@ static struct request *nbd_read_stat(struct nbd_device *nbd) req->errors++; return req; } - dprintk(DBG_RX, "%s: request %p: got %d bytes data\n", - nbd->disk->disk_name, req, bvec.bv_len); + dev_dbg(nbd_to_dev(nbd), "request %p: got %d bytes data\n", + req, bvec.bv_len); } } return req; @@ -449,7 +414,7 @@ static int nbd_do_it(struct nbd_device *nbd) } while ((req = nbd_read_stat(nbd)) != NULL) - nbd_end_request(req); + nbd_end_request(nbd, req); device_remove_file(disk_to_dev(nbd->disk), &pid_attr); nbd->pid = 0; @@ -478,7 +443,7 @@ static void nbd_clear_que(struct nbd_device *nbd) queuelist); list_del_init(&req->queuelist); req->errors++; - nbd_end_request(req); + nbd_end_request(nbd, req); } while (!list_empty(&nbd->waiting_queue)) { @@ -486,7 +451,7 @@ static void nbd_clear_que(struct nbd_device *nbd) queuelist); list_del_init(&req->queuelist); req->errors++; - nbd_end_request(req); + nbd_end_request(nbd, req); } } @@ -530,7 +495,7 @@ static void nbd_handle_req(struct nbd_device *nbd, struct request *req) if (nbd_send_req(nbd, req) != 0) { dev_err(disk_to_dev(nbd->disk), "Request send failed\n"); req->errors++; - nbd_end_request(req); + nbd_end_request(nbd, req); } else { spin_lock(&nbd->queue_lock); list_add_tail(&req->queuelist, &nbd->queue_head); @@ -545,7 +510,7 @@ static void nbd_handle_req(struct nbd_device *nbd, struct request *req) error_out: req->errors++; - nbd_end_request(req); + nbd_end_request(nbd, req); } static int nbd_thread(void *data) @@ -593,18 +558,18 @@ static void do_nbd_request(struct request_queue *q) spin_unlock_irq(q->queue_lock); - dprintk(DBG_BLKDEV, "%s: request %p: dequeued (flags=%x)\n", - req->rq_disk->disk_name, req, req->cmd_type); - nbd = req->rq_disk->private_data; BUG_ON(nbd->magic != NBD_MAGIC); + dev_dbg(nbd_to_dev(nbd), "request %p: dequeued (flags=%x)\n", + req, req->cmd_type); + if (unlikely(!nbd->sock)) { dev_err(disk_to_dev(nbd->disk), "Attempted send on closed socket\n"); req->errors++; - nbd_end_request(req); + nbd_end_request(nbd, req); spin_lock_irq(q->queue_lock); continue; } @@ -791,10 +756,6 @@ static int nbd_ioctl(struct block_device *bdev, fmode_t mode, BUG_ON(nbd->magic != NBD_MAGIC); - /* Anyone capable of this syscall can do *real bad* things */ - dprintk(DBG_IOCTL, "%s: nbd_ioctl cmd=%s(0x%x) arg=%lu\n", - nbd->disk->disk_name, ioctl_cmd_to_ascii(cmd), cmd, arg); - mutex_lock(&nbd->tx_lock); error = __nbd_ioctl(bdev, nbd, cmd, arg); mutex_unlock(&nbd->tx_lock); @@ -884,7 +845,6 @@ static int __init nbd_init(void) } printk(KERN_INFO "nbd: registered device at major %d\n", NBD_MAJOR); - dprintk(DBG_INIT, "nbd: debugflags=0x%x\n", debugflags); for (i = 0; i < nbds_max; i++) { struct gendisk *disk = nbd_dev[i].disk; @@ -943,7 +903,3 @@ module_param(nbds_max, int, 0444); MODULE_PARM_DESC(nbds_max, "number of network block devices to initialize (default: 16)"); module_param(max_part, int, 0444); MODULE_PARM_DESC(max_part, "number of partitions per device (default: 0)"); -#ifndef NDEBUG -module_param(debugflags, int, 0644); -MODULE_PARM_DESC(debugflags, "flags for controlling debug output"); -#endif -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 6/9] nbd: Restructure debugging prints 2015-03-12 13:36 ` [PATCH v2 6/9] nbd: Restructure debugging prints Markus Pargmann @ 2015-03-16 21:11 ` Pavel Machek 0 siblings, 0 replies; 15+ messages in thread From: Pavel Machek @ 2015-03-16 21:11 UTC (permalink / raw) To: Markus Pargmann; +Cc: nbd-general, linux-kernel, Joe Perches, Wouter Verhelst On Thu 2015-03-12 14:36:04, Markus Pargmann wrote: > dprintk has some name collisions with other frameworks and drivers. It > is also not necessary to have these custom debug print filters. Dynamic > debug offers the same amount of filtered debugging. > > This patch replaces all dprintks with dev_dbg(). It also removes the > ioctl dprintk which prints the ingoing ioctls which should be > replaceable by strace or similar stuff. > > Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 7/9] nbd: Remove fixme that was already fixed 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann ` (5 preceding siblings ...) 2015-03-12 13:36 ` [PATCH v2 6/9] nbd: Restructure debugging prints Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 8/9] nbd: Return error code directly Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 9/9] nbd: Return error pointer directly Markus Pargmann 8 siblings, 0 replies; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann The mentioned problem is not present anymore. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- drivers/block/nbd.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 217b570dd7a5..6e7a7b06efcb 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -110,14 +110,11 @@ static void nbd_end_request(struct nbd_device *nbd, struct request *req) spin_unlock_irqrestore(q->queue_lock, flags); } +/* + * Forcibly shutdown the socket causing all listeners to error + */ static void sock_shutdown(struct nbd_device *nbd, int lock) { - /* Forcibly shutdown the socket causing all listeners - * to error - * - * FIXME: This code is duplicated from sys_shutdown, but - * there should be a more generic interface rather than - * calling socket ops directly here */ if (lock) mutex_lock(&nbd->tx_lock); if (nbd->sock) { -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v2 8/9] nbd: Return error code directly 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann ` (6 preceding siblings ...) 2015-03-12 13:36 ` [PATCH v2 7/9] nbd: Remove fixme that was already fixed Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 9/9] nbd: Return error pointer directly Markus Pargmann 8 siblings, 1 reply; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann By returning the error code directly, we can avoid the jump label error_out. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- drivers/block/nbd.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index 6e7a7b06efcb..e41fb4ccf39a 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -249,7 +249,7 @@ static int nbd_send_req(struct nbd_device *nbd, struct request *req) if (result <= 0) { dev_err(disk_to_dev(nbd->disk), "Send control failed (result %d)\n", result); - goto error_out; + return -EIO; } if (nbd_cmd(req) == NBD_CMD_WRITE) { @@ -270,14 +270,11 @@ static int nbd_send_req(struct nbd_device *nbd, struct request *req) dev_err(disk_to_dev(nbd->disk), "Send data failed (result %d)\n", result); - goto error_out; + return -EIO; } } } return 0; - -error_out: - return -EIO; } static struct request *nbd_find_request(struct nbd_device *nbd, -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 8/9] nbd: Return error code directly 2015-03-12 13:36 ` [PATCH v2 8/9] nbd: Return error code directly Markus Pargmann @ 2015-03-16 21:11 ` Pavel Machek 0 siblings, 0 replies; 15+ messages in thread From: Pavel Machek @ 2015-03-16 21:11 UTC (permalink / raw) To: Markus Pargmann; +Cc: nbd-general, linux-kernel, Joe Perches, Wouter Verhelst On Thu 2015-03-12 14:36:06, Markus Pargmann wrote: > By returning the error code directly, we can avoid the jump label > error_out. > > Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2 9/9] nbd: Return error pointer directly 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann ` (7 preceding siblings ...) 2015-03-12 13:36 ` [PATCH v2 8/9] nbd: Return error code directly Markus Pargmann @ 2015-03-12 13:36 ` Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 8 siblings, 1 reply; 15+ messages in thread From: Markus Pargmann @ 2015-03-12 13:36 UTC (permalink / raw) To: nbd-general; +Cc: linux-kernel, Joe Perches, Wouter Verhelst, Markus Pargmann Signed-off-by: Markus Pargmann <mpa@pengutronix.de> --- Notes: Changes in v2: - Remove unnecessary brackets drivers/block/nbd.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c index e41fb4ccf39a..bd8f4caf53bd 100644 --- a/drivers/block/nbd.c +++ b/drivers/block/nbd.c @@ -285,7 +285,7 @@ static struct request *nbd_find_request(struct nbd_device *nbd, err = wait_event_interruptible(nbd->active_wq, nbd->active_req != xreq); if (unlikely(err)) - goto out; + return ERR_PTR(err); spin_lock(&nbd->queue_lock); list_for_each_entry_safe(req, tmp, &nbd->queue_head, queuelist) { @@ -297,10 +297,7 @@ static struct request *nbd_find_request(struct nbd_device *nbd, } spin_unlock(&nbd->queue_lock); - err = -ENOENT; - -out: - return ERR_PTR(err); + return ERR_PTR(-ENOENT); } static inline int sock_recv_bvec(struct nbd_device *nbd, struct bio_vec *bvec) -- 2.1.4 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2 9/9] nbd: Return error pointer directly 2015-03-12 13:36 ` [PATCH v2 9/9] nbd: Return error pointer directly Markus Pargmann @ 2015-03-16 21:11 ` Pavel Machek 0 siblings, 0 replies; 15+ messages in thread From: Pavel Machek @ 2015-03-16 21:11 UTC (permalink / raw) To: Markus Pargmann; +Cc: nbd-general, linux-kernel, Joe Perches, Wouter Verhelst On Thu 2015-03-12 14:36:07, Markus Pargmann wrote: > Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Acked-by: Pavel Machek <pavel@ucw.cz> -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2015-03-16 21:11 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-03-12 13:35 [PATCH v2 0/9] nbd: cleanups Markus Pargmann 2015-03-12 13:35 ` [PATCH v2 1/9] Documentation: nbd: Reformat to allow more documentation Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 2/9] Documentation: nbd: Add list of module parameters Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 3/9] nbd: Remove kernel internal header Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 4/9] nbd: Replace kthread_create with kthread_run Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 5/9] nbd: Fix device bytesize type Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 6/9] nbd: Restructure debugging prints Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 7/9] nbd: Remove fixme that was already fixed Markus Pargmann 2015-03-12 13:36 ` [PATCH v2 8/9] nbd: Return error code directly Markus Pargmann 2015-03-16 21:11 ` Pavel Machek 2015-03-12 13:36 ` [PATCH v2 9/9] nbd: Return error pointer directly Markus Pargmann 2015-03-16 21:11 ` Pavel Machek
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox