mirror of https://gitee.com/openkylin/linux.git
9361401eb7
Make it possible to disable the block layer. Not all embedded devices require it, some can make do with just JFFS2, NFS, ramfs, etc - none of which require the block layer to be present. This patch does the following: (*) Introduces CONFIG_BLOCK to disable the block layer, buffering and blockdev support. (*) Adds dependencies on CONFIG_BLOCK to any configuration item that controls an item that uses the block layer. This includes: (*) Block I/O tracing. (*) Disk partition code. (*) All filesystems that are block based, eg: Ext3, ReiserFS, ISOFS. (*) The SCSI layer. As far as I can tell, even SCSI chardevs use the block layer to do scheduling. Some drivers that use SCSI facilities - such as USB storage - end up disabled indirectly from this. (*) Various block-based device drivers, such as IDE and the old CDROM drivers. (*) MTD blockdev handling and FTL. (*) JFFS - which uses set_bdev_super(), something it could avoid doing by taking a leaf out of JFFS2's book. (*) Makes most of the contents of linux/blkdev.h, linux/buffer_head.h and linux/elevator.h contingent on CONFIG_BLOCK being set. sector_div() is, however, still used in places, and so is still available. (*) Also made contingent are the contents of linux/mpage.h, linux/genhd.h and parts of linux/fs.h. (*) Makes a number of files in fs/ contingent on CONFIG_BLOCK. (*) Makes mm/bounce.c (bounce buffering) contingent on CONFIG_BLOCK. (*) set_page_dirty() doesn't call __set_page_dirty_buffers() if CONFIG_BLOCK is not enabled. (*) fs/no-block.c is created to hold out-of-line stubs and things that are required when CONFIG_BLOCK is not set: (*) Default blockdev file operations (to give error ENODEV on opening). (*) Makes some /proc changes: (*) /proc/devices does not list any blockdevs. (*) /proc/diskstats and /proc/partitions are contingent on CONFIG_BLOCK. (*) Makes some compat ioctl handling contingent on CONFIG_BLOCK. (*) If CONFIG_BLOCK is not defined, makes sys_quotactl() return -ENODEV if given command other than Q_SYNC or if a special device is specified. (*) In init/do_mounts.c, no reference is made to the blockdev routines if CONFIG_BLOCK is not defined. This does not prohibit NFS roots or JFFS2. (*) The bdflush, ioprio_set and ioprio_get syscalls can now be absent (return error ENOSYS by way of cond_syscall if so). (*) The seclvl_bd_claim() and seclvl_bd_release() security calls do nothing if CONFIG_BLOCK is not set, since they can't then happen. Signed-Off-By: David Howells <dhowells@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
README | ||
README.ioctl | ||
bus-osm.c | ||
config-osm.c | ||
core.h | ||
debug.c | ||
device.c | ||
driver.c | ||
exec-osm.c | ||
i2o_block.c | ||
i2o_block.h | ||
i2o_config.c | ||
i2o_lan.h | ||
i2o_proc.c | ||
i2o_scsi.c | ||
iop.c | ||
pci.c |
README
Linux I2O Support (c) Copyright 1999 Red Hat Software and others. 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. AUTHORS (so far) Alan Cox, Building Number Three Ltd. Core code, SCSI and Block OSMs Steve Ralston, LSI Logic Corp. Debugging SCSI and Block OSM Deepak Saxena, Intel Corp. Various core/block extensions /proc interface, bug fixes Ioctl interfaces for control Debugging LAN OSM Philip Rumpf Fixed assorted dumb SMP locking bugs Juha Sievanen, University of Helsinki Finland LAN OSM code /proc interface to LAN class Bug fixes Core code extensions Auvo Häkkinen, University of Helsinki Finland LAN OSM code /Proc interface to LAN class Bug fixes Core code extensions Taneli Vähäkangas, University of Helsinki Finland Fixes to i2o_config CREDITS This work was made possible by Red Hat Software Funding for the Building #3 part of the project Symbios Logic (Now LSI) Host adapters, hints, known to work platforms when I hit compatibility problems BoxHill Corporation Loan of initial FibreChannel disk array used for development work. European Comission Funding the work done by the University of Helsinki SysKonnect Loan of FDDI and Gigabit Ethernet cards ASUSTeK Loan of I2O motherboard STATUS: o The core setup works within limits. o The scsi layer seems to almost work. I'm still chasing down the hang bug. o The block OSM is mostly functional o LAN OSM works with FDDI and Ethernet cards. TO DO: General: o Provide hidden address space if asked o Long term message flow control o PCI IOP's without interrupts are not supported yet o Push FAIL handling into the core o DDM control interfaces for module load etc o Add I2O 2.0 support (Deffered to 2.5 kernel) Block: o Multiple major numbers o Read ahead and cache handling stuff. Talk to Ingo and people o Power management o Finish Media changers SCSI: o Find the right way to associate drives/luns/busses Lan: o Performance tuning o Test Fibre Channel code Tape: o Anyone seen anything implementing this ? (D.S: Will attempt to do so if spare cycles permit)