All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Clements <paul.clements@steeleye.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/1] NBD: raise max number of nbd devices to 1024
Date: Wed, 30 Jan 2008 08:14:53 -0500	[thread overview]
Message-ID: <47A0784D.8090902@steeleye.com> (raw)
In-Reply-To: <20080129180857.f8979300.akpm@linux-foundation.org>

[-- Attachment #1: Type: text/plain, Size: 775 bytes --]

Andrew Morton wrote:
> On Tue, 29 Jan 2008 21:04:05 -0500 Paul Clements <paul.clements@steeleye.com> wrote:
> 
>> Andrew Morton wrote:
>>
>> <snip>
>>
>>> much nicer?
>> OK, yes, I was going for quick and easy, but you've got a point...
>>
>> We do need to move the kcalloc into nbd_init instead of nbd_cleanup, 
>> though -- that works a little better. Patch is attached. Thanks for the 
>> suggestion.
>>
>> --
>> Paul
>>
>>
>> [nbd_max_nbd_killed.diff  text/x-patch (1.2KB)]
>>
>> Signed-Off-By: Paul Clements <paul.clements@steeleye.com>
>>
>> --- ./include/linux/nbd.h.TIMEOUT	2007-08-22 13:18:12.000000000 -0400
>> +++ ./include/linux/nbd.h	2008-01-29 20:01:33.000000000 -0500
> 
> Could we have a complete changelog please?  As I mentioned in the
> earlier email?
> 


[-- Attachment #2: nbd_max_nbd_killed.diff --]
[-- Type: text/x-patch, Size: 1428 bytes --]


[PATCH 1/1] NBD: remove limit on max number of nbd devices

Remove the arbitrary 128 device limit for NBD. nbds_max can now be set to
any number. In certain scenarios where devices are used sparsely we
have run into the 128 device limit.

Signed-Off-By: Paul Clements <paul.clements@steeleye.com>

--- ./include/linux/nbd.h.TIMEOUT	2007-08-22 13:18:12.000000000 -0400
+++ ./include/linux/nbd.h	2008-01-29 20:01:33.000000000 -0500
@@ -35,7 +35,6 @@ enum {
 };
 
 #define nbd_cmd(req) ((req)->cmd[0])
-#define MAX_NBD 128
 
 /* userspace doesn't need the nbd_device structure */
 #ifdef __KERNEL__
--- ./drivers/block/nbd.c.ORIG	2008-01-29 20:01:12.000000000 -0500
+++ ./drivers/block/nbd.c	2008-01-29 20:08:30.000000000 -0500
@@ -53,7 +53,7 @@ static unsigned int debugflags;
 #endif /* NDEBUG */
 
 static unsigned int nbds_max = 16;
-static struct nbd_device nbd_dev[MAX_NBD];
+static struct nbd_device *nbd_dev;
 
 /*
  * Use just one lock (or at most 1 per NIC). Two arguments for this:
@@ -659,11 +659,9 @@ static int __init nbd_init(void)
 
 	BUILD_BUG_ON(sizeof(struct nbd_request) != 28);
 
-	if (nbds_max > MAX_NBD) {
-		printk(KERN_CRIT "nbd: cannot allocate more than %u nbds; %u requested.\n", MAX_NBD,
-				nbds_max);
-		return -EINVAL;
-	}
+	nbd_dev = kcalloc(nbds_max, sizeof(*nbd_dev), GFP_KERNEL);
+	if (!nbd_dev)
+		return -ENOMEM;
 
 	for (i = 0; i < nbds_max; i++) {
 		struct gendisk *disk = alloc_disk(1);

      reply	other threads:[~2008-01-30 13:15 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-29 21:30 [PATCH 1/1] NBD: raise max number of nbd devices to 1024 Paul Clements
2008-01-29 21:54 ` Andrew Morton
2008-01-30  2:04   ` Paul Clements
2008-01-30  2:08     ` Andrew Morton
2008-01-30 13:14       ` Paul Clements [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=47A0784D.8090902@steeleye.com \
    --to=paul.clements@steeleye.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.