30 Jul, 2007

1 commit

  • Correct the Solaris x86 number of partitions (slices) is a way that is
    backward compatible with the earlier size.

    This works without a new VTOC structure definition as the timestamp
    and v_asciilabel fields in the VTOC are not used by the kernel yet.

    Signed-off-by: Mark Fortescue
    Signed-off-by: David S. Miller

    Mark
     

24 May, 2007

2 commits

  • Send an uevent to user space to indicate that a media change event has
    occurred.

    Signed-off-by: Kristen Carlson Accardi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kristen Carlson Accardi
     
  • Allow user space to determine if a disk supports Asynchronous Notification of
    media changes. This is done by adding a new sysfs file "capability_flags",
    which is documented in (insert file name). This sysfs file will export all
    disk capabilities flags to user space. We also define a new flag to define
    the media change notification capability.

    Signed-off-by: Kristen Carlson Accardi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kristen Carlson Accardi
     

11 May, 2007

1 commit


10 May, 2007

1 commit

  • Display all possible partitions when the root filesystem is not mounted.
    This helps to track spell'o's and missing drivers.

    Updated to work with newer kernels.

    Example output:

    VFS: Cannot open root device "foobar" or unknown-block(0,0)
    Please append a correct "root=" boot option; here are the available partitions:
    0800 8388608 sda driver: sd
    0801 192748 sda1
    0802 8193150 sda2
    0810 4194304 sdb driver: sd
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

    [akpm@linux-foundation.org: cleanups, fix printk warnings]
    Signed-off-by: Jan Engelhardt
    Cc: Dave Gilbert
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dave Gilbert
     

12 Feb, 2007

2 commits

  • * master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: Update defconfig.
    [SPARC64]: Add PCI MSI support on Niagara.
    [SPARC64] IRQ: Use irq_desc->chip_data instead of irq_desc->handler_data
    [SPARC64]: Add obppath sysfs attribute for SBUS and PCI devices.
    [PARTITION]: Add whole_disk attribute.

    Linus Torvalds
     
  • The patch to identify AIX disks and ignore them has caused at least one
    machine to fail to find the root partition on 2.6.19. The patch is:

    http://lkml.org/lkml/2006/7/31/117

    The problem is some disk formatters do not blow away the first 4 bytes
    of the disk. If the disk we are installing to used to have AIX on it,
    then the first 4 bytes will still have IBMA in EBCDIC.

    The install in question was debian etch. Im not sure what the best fix
    is, perhaps the AIX detection code could check more than the first 4
    bytes.

    The whole partition info for primary partitions is in this block:

    dd if=/dev/sdb count=$(( 4 * 16 )) bs=1 skip=$(( 0x1be ))

    All other data do not matter, beside the 0x55aa marker at the end of the
    first block.

    Signed-off-by: Olaf Hering
    Cc: OGAWA Hirofumi
    Cc: Anton Blanchard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

11 Feb, 2007

1 commit

  • Some partitioning systems create special partitions that
    span the entire disk. One example are Sun partitions, and
    this whole-disk partition exists to tell the firmware the
    extent of the entire device so it can load the boot block
    and do other things.

    Such partitions should not be treated as normal partitions,
    because all the other partitions overlap this whole-disk one.
    So we'd see multiple instances of the same UUID etc. which
    we do not want. udev and friends can thus search for this
    'whole_disk' attribute and use it to decide to ignore the
    partition.

    Signed-off-by: Fabio Massimo Di Nitto
    Signed-off-by: David S. Miller

    Fabio Massimo Di Nitto
     

09 Dec, 2006

1 commit

  • This patch provides fault-injection capability for disk IO.

    Boot option:

    fail_make_request=,,,

    -- specifies the interval of failures.

    -- specifies how often it should fail in percent.

    -- specifies the size of free space where disk IO can be issued
    safely in bytes.

    -- specifies how many times failures may happen at most.

    Debugfs:

    /debug/fail_make_request/interval
    /debug/fail_make_request/probability
    /debug/fail_make_request/specifies
    /debug/fail_make_request/times

    Example:

    fail_make_request=10,100,0,-1
    echo 1 > /sys/blocks/hda/hda1/make-it-fail

    generic_make_request() on /dev/hda1 fails once per 10 times.

    Cc: Jens Axboe
    Signed-off-by: Akinobu Mita
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

01 Oct, 2006

1 commit

  • 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
    Signed-off-by: Jens Axboe

    David Howells
     

27 Jun, 2006

1 commit


25 Apr, 2006

1 commit


15 Apr, 2006

1 commit

  • [BLOCK] delay all uevents until partition table is scanned

    Here we delay the annoucement of all block device events until the
    disk's partition table is scanned and all partition devices are already
    created and sysfs is populated.

    We have a bunch of old bugs for removable storage handling where we
    probe successfully for a filesystem on the raw disk, but at the
    same time the kernel recognizes a partition table and creates partition
    devices.
    Currently there is no sane way to tell if partitions will show up or not
    at the time the disk device is announced to userspace. With the delayed
    events we can simply skip any probe for a filesystem on the raw disk when
    we find already present partitions.

    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers
     

29 Mar, 2006

1 commit


28 Mar, 2006

3 commits


27 Mar, 2006

1 commit

  • The kernel's representation of the disk statistics uses the type unsigned
    which is 32b on both 32b and 64b platforms. Unfortunately, most system
    tools that work with these numbers that are exported in /proc/diskstats
    including iostat read these numbers into unsigned longs. This works fine
    on 32b platforms and when the number of IO transactions are small on 64b
    platforms. However, when the numbers wrap on 64b platforms & you read the
    numbers into unsigned longs, and compare the numbers to previous readings,
    then you get an unsigned representation of a negative number. This looks
    like a very large 64b number & gives you bizarre readouts in iostat:

    ilc4: Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
    ilc4: sda 5.50 0.00 143.96 0.00 307496983987862656.00 0.00 153748491993931328.00 0.00 2136028725038430.00 7.94 55.12 5.59 80.42

    Though fixing iostat in user space is possible, and a quick survey
    indicates that several other similar tools also use unsigned longs when
    processing /proc/diskstats. Therefore, it seems like a better approach
    would be to extend the length of the disk_stats structure on 64b
    architectures to 64b. The following patch does that. It should not affect
    the operation on 32b platforms.

    Signed-off-by: Ben Woodard
    Cc: Rick Lindsley
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Ben Woodard
     

23 Mar, 2006

1 commit

  • When we stop allocating percpu memory for not-possible CPUs we must not touch
    the percpu data for not-possible CPUs at all. The correct way of doing this
    is to test cpu_possible() or to use for_each_cpu().

    This patch is a kernel-wide sweep of all instances of NR_CPUS. I found very
    few instances of this bug, if any. But the patch converts lots of open-coded
    test to use the preferred helper macros.

    Cc: Mikael Starvik
    Cc: David Howells
    Acked-by: Kyle McMartin
    Cc: Anton Blanchard
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Paul Mundt
    Cc: "David S. Miller"
    Cc: William Lee Irwin III
    Cc: Andi Kleen
    Cc: Christian Zankel
    Cc: Philippe Elie
    Cc: Nathan Scott
    Cc: Jens Axboe
    Cc: Eric Dumazet
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

12 Nov, 2005

1 commit


01 Nov, 2005

1 commit

  • Instead of having ->read_sectors and ->write_sectors, combine the two
    into ->sectors[2] and similar for the other fields. This saves a branch
    several places in the io path, since we don't have to care for what the
    actual io direction is. On my x86-64 box, that's 200 bytes less text in
    just the core (not counting the various drivers).

    Signed-off-by: Jens Axboe

    Jens Axboe
     

29 Oct, 2005

2 commits


28 Oct, 2005

1 commit

  • struct gendisk has these two fields: stamp, stamp_idle. Update to
    stamp_idle is always in sync with stamp and they are always the same.
    Therefore, it does not add any value in having two fields tracking
    same timestamp. Suggest to remove it.

    Also, we should only update gendisk stats with non-zero value.
    Advantage is that we don't have to needlessly calculate memory address,
    and then add zero to the content.

    Signed-off-by: Ken Chen
    Signed-off-by: Jens Axboe

    Chen, Kenneth W
     

24 Jun, 2005

2 commits

  • Patch to add check to get_chrdev_list and get_blkdev_list to prevent reads
    of /proc/devices from spilling over the provided page if more than 4096
    bytes of string data are generated from all the registered character and
    block devices in a system

    Signed-off-by: Neil Horman
    Cc: Christoph Hellwig
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Neil Horman
     
  • Patch to allocate the control structures for for ide devices on the node of
    the device itself (for NUMA systems). The patch depends on the Slab API
    change patch by Manfred and me (in mm) and the pcidev_to_node patch that I
    posted today.

    Does some realignment too.

    Signed-off-by: Justin M. Forbes
    Signed-off-by: Christoph Lameter
    Signed-off-by: Pravin Shelar
    Signed-off-by: Shobhit Dayal
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds