linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: David Howells <dhowells@redhat.com>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 17/17] BLOCK: Make it possible to disable the block layer [try #2]
Date: Fri, 25 Aug 2006 15:27:53 +0100	[thread overview]
Message-ID: <20060825142753.GK10659@infradead.org> (raw)
In-Reply-To: <20060824213334.21323.76323.stgit@warthog.cambridge.redhat.com>

> +++ b/drivers/char/random.c
> @@ -655,6 +655,7 @@ void add_interrupt_randomness(int irq)
>  	add_timer_randomness(irq_timer_state[irq], 0x100 + irq);
>  }
>  
> +#ifdef CONFIG_BLOCK
>  void add_disk_randomness(struct gendisk *disk)
>  {
>  	if (!disk || !disk->random)
> @@ -667,6 +668,7 @@ void add_disk_randomness(struct gendisk 
>  }
>  
>  EXPORT_SYMBOL(add_disk_randomness);
> +#endif
>  
>  #define EXTRACT_SIZE 10
>  
> @@ -918,6 +920,7 @@ void rand_initialize_irq(int irq)
>  	}
>  }
>  
> +#ifdef CONFIG_BLOCK
>  void rand_initialize_disk(struct gendisk *disk)
>  {
>  	struct timer_rand_state *state;
> @@ -932,6 +935,7 @@ void rand_initialize_disk(struct gendisk
>  		disk->random = state;
>  	}
>  }
> +#endif

Can you put this two into a single ifdef block?

> index fead87d..f945953 100644
> --- a/drivers/infiniband/ulp/iser/Kconfig
> +++ b/drivers/infiniband/ulp/iser/Kconfig
> @@ -1,6 +1,6 @@
>  config INFINIBAND_ISER
>  	tristate "ISCSI RDMA Protocol"
> -	depends on INFINIBAND && SCSI
> +	depends on INFINIBAND && BLOCK && SCSI

SCSI should (and does in your patch) depend on BLOCK, so you don't
need this additional dependency.

> -	depends on INFINIBAND && SCSI
> +	depends on INFINIBAND && BLOCK && SCSI

ditto.

>  config BLK_DEV_SD
>  	tristate "SCSI disk support"
> -	depends on SCSI
> +	depends on SCSI && BLOCK

ditto.

>  config BLK_DEV_SR
>  	tristate "SCSI CDROM support"
> -	depends on SCSI
> +	depends on SCSI && BLOCK

ditto.

>  config SCSI_SATA
>  	tristate "Serial ATA (SATA) support"
> -	depends on SCSI
> +	depends on SCSI && BLOCK

ditto.

>  config USB_STORAGE
>  	tristate "USB Mass Storage support"
> -	depends on USB
> +	depends on USB && BLOCK

ditto.

> index 3f00a9f..dc5e69b 100644
> --- a/fs/Kconfig
> +++ b/fs/Kconfig
> @@ -4,6 +4,8 @@ #
>  
>  menu "File systems"
>  
> +if BLOCK
> +
>  config EXT2_FS
>  	tristate "Second extended fs support"
>  	help
> @@ -383,8 +385,11 @@ config MINIX_FS
>  	  partition (the one containing the directory /) cannot be compiled as
>  	  a module.
>  
> +endif
> +
>  config ROMFS_FS
>  	tristate "ROM file system support"
> +	depends on BLOCK

care to group all block-based filesystem in a group so that a single
if BLOCK will do it?

> +ifeq ($(CONFIG_BLOCK),y)
> +obj-y +=	buffer.o bio.o block_dev.o direct-io.o mpage.o ioprio.o
> +else
> +obj-y +=	no-block.o
> +endif
>  
>  obj-$(CONFIG_INOTIFY)		+= inotify.o
>  obj-$(CONFIG_INOTIFY_USER)	+= inotify_user.o

> index 7b8a9b4..af160e9 100644
> --- a/fs/compat_ioctl.c
> +++ b/fs/compat_ioctl.c
> @@ -645,6 +645,7 @@ out:
>  }
>  #endif
>  
> +#ifdef CONFIG_BLOCK
>  struct hd_geometry32 {
>  	unsigned char heads;
>  	unsigned char sectors;
> @@ -869,6 +870,7 @@ static int sg_grt_trans(unsigned int fd,
>  	}
>  	return err;
>  }
> +#endif /* CONFIG_BLOCK */

again, try to reorder things here to only require a single ifdef block
(or rather two, a second one for the array entries) if possible.

> --- /dev/null
> +++ b/fs/no-block.c
> @@ -0,0 +1,22 @@
> +/* no-block.c: implementation of routines required for non-BLOCK configuration
> + *
> + * Copyright (C) 2006 Red Hat, Inc. All Rights Reserved.
> + * Written by David Howells (dhowells@redhat.com)
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version
> + * 2 of the License, or (at your option) any later version.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/fs.h>
> +
> +static int no_blkdev_open(struct inode * inode, struct file * filp)
> +{
> +	return -ENODEV;
> +}
> +
> +const struct file_operations def_blk_fops = {
> +	.open		= no_blkdev_open,
> +};

Can we put this into some other file under #ifndef CONFIG_BLOCK to
avoid the separate file and makefile ugliness?

> diff --git a/include/scsi/scsi_tcq.h b/include/scsi/scsi_tcq.h
> index e47e36a..bc34746 100644
> --- a/include/scsi/scsi_tcq.h
> +++ b/include/scsi/scsi_tcq.h
> @@ -5,7 +5,6 @@ #include <linux/blkdev.h>
>  #include <scsi/scsi_cmnd.h>
>  #include <scsi/scsi_device.h>
>  
> -
>  #define MSG_SIMPLE_TAG	0x20
>  #define MSG_HEAD_TAG	0x21
>  #define MSG_ORDERED_TAG	0x22
> @@ -13,6 +12,7 @@ #define MSG_ORDERED_TAG	0x22
>  #define SCSI_NO_TAG	(-1)    /* identify no tag in use */
>  
>  
> +#ifdef CONFIG_BLOCK
>  
>  /**
>   * scsi_get_tag_type - get the type of tag the device supports
> @@ -131,4 +131,5 @@ static inline struct scsi_cmnd *scsi_fin
>  	return sdev->current_cmnd;
>  }
>  
> +#endif /* CONFIG_BLOCK */
>  #endif /* _SCSI_SCSI_TCQ_H */

No one should include this file unless block device support is enabled,
so I don't see the point for the ifdefs.  Ditto for many other header
files you touch that don't contain any stubs for generic code.


And btw, shouldn't the option be CONFIG_BLK_DEV instead of CONFIG_BLOCK
to fit the variour CONFIG_BLK_DEV_FOO options we have?

  reply	other threads:[~2006-08-25 14:27 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200608250023.20903.arnd@arndb.de>
2006-08-24 21:32 ` [PATCH 01/17] BLOCK: Move functions out of buffer code [try #2] David Howells
2006-08-24 21:32   ` [PATCH 02/17] BLOCK: Remove duplicate declaration of exit_io_context() " David Howells
2006-08-25 14:08     ` Christoph Hellwig
2006-08-24 21:32   ` [PATCH 03/17] BLOCK: Stop fallback_migrate_page() from using page_has_buffers() " David Howells
2006-08-25 14:10     ` Christoph Hellwig
2006-08-25 16:11     ` David Howells
2006-08-24 21:33   ` [PATCH 04/17] BLOCK: Separate the bounce buffering code from the highmem code " David Howells
2006-08-25 14:12     ` Christoph Hellwig
2006-08-24 21:33   ` [PATCH 05/17] BLOCK: Don't call block_sync_page() from AFS " David Howells
2006-08-25 14:13     ` Christoph Hellwig
2006-08-25 16:12     ` David Howells
2006-08-24 21:33   ` [PATCH 06/17] BLOCK: Move bdev_cache_init() declaration to headerfile " David Howells
2006-08-25 14:13     ` Christoph Hellwig
2006-08-24 21:33   ` [PATCH 07/17] BLOCK: Remove dependence on existence of blockdev_superblock " David Howells
2006-08-25 14:14     ` Christoph Hellwig
2006-08-24 21:33   ` [PATCH 08/17] BLOCK: Dissociate generic_writepages() from mpage stuff " David Howells
2006-08-25 14:16     ` Christoph Hellwig
2006-08-24 21:33   ` [PATCH 09/17] BLOCK: Move __invalidate_device() to block_dev.c " David Howells
2006-08-25 14:16     ` Christoph Hellwig
2006-08-24 21:33   ` [PATCH 10/17] BLOCK: Move the loop device ioctl compat stuff to the loop driver " David Howells
2006-08-25  9:27     ` David Howells
2006-08-25 11:01       ` David Howells
2006-08-24 21:33   ` [PATCH 11/17] BLOCK: Move common FS-specific ioctls to linux/fs.h " David Howells
2006-08-25  8:38     ` David Howells
2006-08-25  8:44       ` Arnd Bergmann
2006-08-24 21:33   ` [PATCH 12/17] BLOCK: Move the ReiserFS device ioctl compat stuff to the ReiserFS driver " David Howells
2006-08-24 21:33   ` [PATCH 13/17] BLOCK: Move the Ext2 device ioctl compat stuff to the Ext2 " David Howells
2006-08-24 21:33   ` [PATCH 14/17] BLOCK: Move the Ext3 device ioctl compat stuff to the Ext3 " David Howells
2006-08-24 21:33   ` [PATCH 15/17] BLOCK: Stop CIFS from using EXT2 ioctl numbers directly " David Howells
2006-08-24 21:41     ` Trond Myklebust
2006-08-25  8:12     ` David Howells
2006-08-24 21:33   ` [PATCH 16/17] BLOCK: Move the msdos device ioctl compat stuff to the msdos driver " David Howells
2006-08-24 21:33   ` [PATCH 17/17] BLOCK: Make it possible to disable the block layer " David Howells
2006-08-25 14:27     ` Christoph Hellwig [this message]
2006-08-25 14:52       ` Alexey Dobriyan
2006-08-25 16:23     ` David Howells
2006-08-29 11:51       ` Christoph Hellwig
2006-08-29 12:21         ` Stefan Richter
2006-08-29 12:23       ` David Howells
2006-08-29 12:25         ` Christoph Hellwig
2006-08-29 13:50           ` Stefan Richter
2006-08-29 14:13             ` Stefan Richter
2006-08-30  1:12               ` Roman Zippel
2006-08-30 18:33                 ` Stefan Richter
2006-08-30 21:43                   ` Adrian Bunk
2006-08-30 22:41                     ` Roman Zippel
2006-08-30 23:38                       ` Adrian Bunk
2006-08-30 23:58                         ` Roman Zippel
2006-08-31  8:01                           ` Stefan Richter
2006-09-01  0:15                       ` David Woodhouse
2006-09-01  0:48                         ` Randy.Dunlap
2006-09-01  1:27                           ` David Woodhouse
2006-09-01  1:47                             ` Adrian Bunk
2006-09-01 13:44                             ` Jörn Engel
2006-09-01 15:31                               ` Stefan Richter
2006-09-01 16:19                                 ` Jörn Engel
2006-09-01 16:34                                   ` Adrian Bunk
2006-09-01 17:51                                     ` Stefan Richter
2006-09-01 18:14                                       ` Sam Ravnborg
2006-08-30 22:50                     ` Stefan Richter
2006-08-30 23:12                       ` Adrian Bunk
2006-08-30  1:11             ` Roman Zippel
2006-08-30 11:29               ` Stefan Richter
2006-08-29 19:58           ` Greg KH
2006-08-29 21:08             ` John Stoffel
2006-08-31  3:01               ` Matthew Wilcox
2006-08-31  3:04                 ` Shaya Potter
2006-08-31  8:53                   ` Stefan Richter
2006-08-31 12:32                     ` Shaya Potter
2006-08-31 13:16                       ` Stefan Richter
2006-08-31 13:27                         ` Shaya Potter
2006-08-31 10:13             ` David Howells
2006-08-25 18:46     ` David Howells
2006-08-25 14:08   ` [PATCH 01/17] BLOCK: Move functions out of buffer code " Christoph Hellwig
     [not found] <6Paqj-6iH-23@gated-at.bofh.it>
     [not found] ` <6NKRa-8sj-9@gated-at.bofh.it>
     [not found]   ` <6Nv5K-8dh-9@gated-at.bofh.it>
     [not found]     ` <6Nvfu-8t8-17@gated-at.bofh.it>
     [not found]       ` <6NMJp-4wS-25@gated-at.bofh.it>
     [not found]         ` <6PaTj-7vF-17@gated-at.bofh.it>
     [not found]           ` <6PaTj-7vF-15@gated-at.bofh.it>
     [not found]             ` <6Pciq-362-13@gated-at.bofh.it>
     [not found]               ` <6PmUm-1Y7-9@gated-at.bofh.it>
     [not found]                 ` <6PwAr-6jv-5@gated-at.bofh.it>
2006-08-30 13:23                   ` [PATCH 17/17] BLOCK: Make it possible to disable the block layer " Bodo Eggert
     [not found] <200608251217.24543.arnd@arndb.de>

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=20060825142753.GK10659@infradead.org \
    --to=hch@infradead.org \
    --cc=dhowells@redhat.com \
    --cc=linux-fsdevel@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).