Re: [patch 1/1] nbd: Don't create all MAX_NBD devices by default all the time

From: Lars Marowsky-Bree (lmb_at_suse.de)
Date: 04/15/05

  • Next message: Takashi Iwai: "Re: [Alsa-devel] Re: ALSA Oops (triggered by xmms)"
    Date:	Fri, 15 Apr 2005 10:22:42 +0200
    To: Domen Puncer <domen@coderock.org>
    
    

    On 2005-04-15T00:56:35, Domen Puncer <domen@coderock.org> wrote:

    > This is permissions in sysfs (or 0 if no file is to be created).

    Duh. Should have caught that. Try this one.

    Index: linux-2.6.11/drivers/block/nbd.c
    ===================================================================
    --- linux-2.6.11.orig/drivers/block/nbd.c 2005-03-02 08:37:50.000000000 +0100
    +++ linux-2.6.11/drivers/block/nbd.c 2005-04-15 09:36:10.374854551 +0200
    @@ -78,6 +78,7 @@
     #define DBG_RX 0x0200
     #define DBG_TX 0x0400
     static unsigned int debugflags;
    +static unsigned int nbds_max = 16;
     #endif /* NDEBUG */
     
     static struct nbd_device nbd_dev[MAX_NBD];
    @@ -647,7 +648,13 @@ static int __init nbd_init(void)
                     return -EIO;
             }
     
    - for (i = 0; i < MAX_NBD; i++) {
    + if (nbds_max > MAX_NBD) {
    + printk(KERN_CRIT "nbd: cannot allocate more than %u nbds; %u requested.\n", MAX_NBD,
    + nbds_max);
    + return -EINVAL;
    + }
    +
    + for (i = 0; i < nbds_max; i++) {
                     struct gendisk *disk = alloc_disk(1);
                     if (!disk)
                             goto out;
    @@ -673,7 +680,7 @@ static int __init nbd_init(void)
             dprintk(DBG_INIT, "nbd: debugflags=0x%x\n", debugflags);
     
             devfs_mk_dir("nbd");
    - for (i = 0; i < MAX_NBD; i++) {
    + for (i = 0; i < nbds_max; i++) {
                     struct gendisk *disk = nbd_dev[i].disk;
                     nbd_dev[i].file = NULL;
                     nbd_dev[i].magic = LO_MAGIC;
    @@ -706,8 +713,9 @@ out:
     static void __exit nbd_cleanup(void)
     {
             int i;
    - for (i = 0; i < MAX_NBD; i++) {
    + for (i = 0; i < nbds_max; i++) {
                     struct gendisk *disk = nbd_dev[i].disk;
    + nbd_dev[i].magic = 0;
                     if (disk) {
                             del_gendisk(disk);
                             blk_cleanup_queue(disk->queue);
    @@ -725,6 +733,8 @@ module_exit(nbd_cleanup);
     MODULE_DESCRIPTION("Network Block Device");
     MODULE_LICENSE("GPL");
     
    +module_param(nbds_max, int, 0444);
    +MODULE_PARM_DESC(nbds_max, "How many network block devices to initialize.");
     #ifndef NDEBUG
     module_param(debugflags, int, 0644);
     MODULE_PARM_DESC(debugflags, "flags for controlling debug output");

    Sincerely,
        Lars Marowsky-Brée <lmb@suse.de>

    -- 
    High Availability & Clustering
    SUSE Labs, Research and Development
    SUSE LINUX Products GmbH - A Novell Business
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Takashi Iwai: "Re: [Alsa-devel] Re: ALSA Oops (triggered by xmms)"

    Relevant Pages

    • [PATCH] drivers/block/nbd.c compile fix
      ... the Network Block Device driver doesn't compile if NDEBUG is defined. ... static unsigned int debugflags; ... More majordomo info at http://vger.kernel.org/majordomo-info.html ...
      (Linux-Kernel)
    • RE: 256 apic id for amd64
      ... static unsigned int phys_pkg_id ... What's the jiffies? ... CPU: L2 Cache: 1024K ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • [PATCH 2.6.12-rc2-mm3] serial: update NEC VR4100 series serial support
      ... We always shut down a port before we change the ... Is there a reason why your standard termios setting function can't ... static unsigned int siu_tx_empty ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • [PATCH 4/9] ipmi: poweroff cleanups
      ... There was an extraneous ifdef in the IPMI poweroff code that ... static unsigned int mfg_id; ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)
    • Re: Update MSI Patches
      ... controller startup/ack/mask etc member functions are too much duplicated ... static unsigned int startup_edge_ioapic ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)