mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
NBD: allow nbd to be used locally
This patch allows Network Block Device to be mounted locally (nbd-client to nbd-server over 127.0.0.1). It creates a kthread to avoid the deadlock described in NBD tools documentation. So, if nbd-client hangs waiting for pages, the kblockd thread can continue its work and free pages. I have tested the patch to verify that it avoids the hang that always occurs when writing to a localhost nbd connection. I have also tested to verify that no performance degradation results from the additional thread and queue. Patch originally from Laurent Vivier. Signed-off-by: Paul Clements <paul.clements@steeleye.com> Signed-off-by: Laurent Vivier <Laurent.Vivier@bull.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
8c4dd60682
commit
48cf6061b3
2 changed files with 98 additions and 50 deletions
|
@ -56,9 +56,11 @@ struct nbd_device {
|
|||
int magic;
|
||||
|
||||
spinlock_t queue_lock;
|
||||
struct list_head queue_head;/* Requests are added here... */
|
||||
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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue