30 Jul, 2007

2 commits

  • Start doing VTOC validation before using its contents.
    The validation is adjusted so as not to break existing setups
    that do not set the VTOC version, sanity and partition count entries.
    VTOC tables with more than 8 partitions will NOT be used.

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

    Mark
     
  • 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
     

20 Jul, 2007

1 commit

  • Transform some calls to kmalloc/memset to a single kzalloc (or kcalloc).

    Here is a short excerpt of the semantic patch performing
    this transformation:

    @@
    type T2;
    expression x;
    identifier f,fld;
    expression E;
    expression E1,E2;
    expression e1,e2,e3,y;
    statement S;
    @@

    x =
    - kmalloc
    + kzalloc
    (E1,E2)
    ... when != \(x->fld=E;\|y=f(...,x,...);\|f(...,x,...);\|x=E;\|while(...) S\|for(e1;e2;e3) S\)
    - memset((T2)x,0,E1);

    @@
    expression E1,E2,E3;
    @@

    - kzalloc(E1 * E2,E3)
    + kcalloc(E1,E2,E3)

    [akpm@linux-foundation.org: get kcalloc args the right way around]
    Signed-off-by: Yoann Padioleau
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Acked-by: Russell King
    Cc: Bryan Wu
    Acked-by: Jiri Slaby
    Cc: Dave Airlie
    Acked-by: Roland Dreier
    Cc: Jiri Kosina
    Acked-by: Dmitry Torokhov
    Cc: Benjamin Herrenschmidt
    Acked-by: Mauro Carvalho Chehab
    Acked-by: Pierre Ossman
    Cc: Jeff Garzik
    Cc: "David S. Miller"
    Acked-by: Greg KH
    Cc: James Bottomley
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yoann Padioleau
     

17 Jul, 2007

2 commits

  • Teach LDM about a new field encountered with Windows Vista.

    This fixes LDM for people using Vista who have disabled drive letter
    assignment from one or more volumes. Doing this introduces a so far
    unknown field in the LDM database in the VOL5 VBLK structure which
    causes the LDM driver to fail to parse the VBLK structure and hence LDM
    fails to parse the disk altogether. This patch teaches the driver about
    this field.

    Thanks got to Ashton Mills for reporting the
    problem and working with me on getting it fixed. It is now working for
    him.

    Signed-off-by: Anton Altaparmakov
    CC: Richard Russon
    Signed-off-by: Linus Torvalds

    Anton Altaparmakov
     
  • warning: 'adfs_partition' defined but not used
    warning: 'riscix_partition' defined but not used
    warning: 'linux_partition' defined but not used

    Signed-off-by: Denver Gingerich
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Denver Gingerich
     

12 Jul, 2007

1 commit

  • sysfs is now completely out of driver/module lifetime game. After
    deletion, a sysfs node doesn't access anything outside sysfs proper,
    so there's no reason to hold onto the attribute owners. Note that
    often the wrong modules were accounted for as owners leading to
    accessing removed modules.

    This patch kills now unnecessary attribute->owner. Note that with
    this change, userland holding a sysfs node does not prevent the
    backing module from being unloaded.

    For more info regarding lifetime rule cleanup, please read the
    following message.

    http://article.gmane.org/gmane.linux.kernel/510293

    (tweaked by Greg to not delete the field just yet, to make it easier to
    merge things properly.)

    Signed-off-by: Tejun Heo
    Cc: Cornelia Huck
    Cc: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Tejun Heo
     

10 Jul, 2007

1 commit


22 May, 2007

2 commits

  • This from a "tested" patch...

    Signed-off-by: Jeff Garzik
    Cc: Anton Altaparmakov
    Signed-off-by: Linus Torvalds

    Jeff Garzik
     
  • This fixes the LDM driver so that it works with Windows Vista dynamic
    disks which are subtly different to Windows 2000/XP ones.

    The patch was needed to get a Vista formatted dynamic disk to be
    recognized and parsed successfully.

    Thanks go to Chris Teachworth for the report and testing.

    Cc: Richard Russon
    Signed-off-by: Anton Altaparmakov
    Signed-off-by: Linus Torvalds

    Anton Altaparmakov
     

11 May, 2007

2 commits


09 May, 2007

1 commit


08 May, 2007

3 commits

  • invalidate_bdev() is superfluous when truncate_inode_pages() is also
    called. do call invalidate_bh_lrus() though, to avoid stale pointers.

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Remove the destroy_dirty_buffers argument from invalidate_bdev(), it hasn't
    been used in 6 years (so akpm says).

    find * -name \*.[ch] | xargs grep -l invalidate_bdev |
    while read file; do
    quilt add $file;
    sed -ie 's/invalidate_bdev(\([^,]*\),[^)]*)/invalidate_bdev(\1)/g' $file;
    done

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Ensure pages are uptodate after returning from read_cache_page, which allows
    us to cut out most of the filesystem-internal PageUptodate calls.

    I didn't have a great look down the call chains, but this appears to fixes 7
    possible use-before uptodate in hfs, 2 in hfsplus, 1 in jfs, a few in
    ecryptfs, 1 in jffs2, and a possible cleared data overwritten with readpage in
    block2mtd. All depending on whether the filler is async and/or can return
    with a !uptodate page.

    Signed-off-by: Nick Piggin
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

03 May, 2007

1 commit


17 Mar, 2007

2 commits

  • Remove the misleading "Presently only useful on the IA-64 platform" text
    from the EFI partition Kconfig.

    EFI partitions are also used by Apple on their Intel-based machines and
    thus you need EFI partition support if you (for example) want to attach
    such a machine in target disk mode.

    Signed-off-by: Johannes Berg
    Acked-by: Matt Domsch
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Berg
     
  • The only error code which comes from the partition checkers is -1, when
    they finds an EIO. As per the discussion, ENOMEM values were ignored,
    as they might scare the users.

    So, with the current code, we end up returning -1 and not EIO for the
    ioctl() calls. Which doesn't give any clue to the user of what went
    wrong.

    Signed-off-by: Suzuki K P
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    suzuki
     

08 Mar, 2007

1 commit


17 Feb, 2007

1 commit


12 Feb, 2007

3 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
     
  • Correct the AIX magic check to let 'echo > /dev/sdb' actually work.

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

    Olaf Hering
     
  • 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

2 commits

  • Signed-off-by: Thomas Bogendoerfer
    Signed-off-by: Ralf Baechle

    Thomas Bogendoerfer
     
  • 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
     

08 Dec, 2006

2 commits

  • check_partition() stops its probe once it hits an I/O error from the
    partition checkers. This would prevent the actual partition checker
    getting a chance to verify the partition.

    So this patch lets check_partition() continue probing untill it hits a
    success while recording the I/O error which might have been reported by the
    checking routines.

    Also, it does some cleanup of the partition methods for ibm, atari and
    amiga to return -1 upon hitting an I/O error.

    Signed-off-by: Suzuki K P
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Suzuki K P
     
  • The current rescan_partition implementation ignores the errors that comes from
    the lower layer. It reports success for unknown partitions as well as I/O
    error cases while reading the partition information.

    The unknown partition is not (and will not be) considered as an error in the
    kernel, since there are legal users of it (e.g, members of a RAID5 MD Device
    or a new disk which is not partitioned at all ). Changing this behaviour
    would scare the user about a serious problem with their disk and is not
    recommended. Thus for both "unknown partitions" to the Linux (eg., DEC
    VMS,Novell Netware) and the legal users of NULL partition, would still be
    reported as "SUCCESS".

    The patch attached here, scares the user about something which he does need to
    worry about. i.e, returning -EIO on disk I/O errors while reading the
    partition information.

    Signed-off-by: Suzuki K P
    Cc: Erik Mouw
    Cc: Christoph Hellwig
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Suzuki Kp
     

05 Dec, 2006

1 commit


17 Oct, 2006

1 commit

  • Handle errors thrown in disk_sysfs_symlinks(), and propagate back to
    caller.

    The callers and associated functions don't do a real good job of handling
    kobject errors anyway (add_partition, register_disk, rescan_partitions), so
    this should do until something better comes along.

    Signed-off-by: Jeff Garzik
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Garzik
     

11 Oct, 2006

1 commit


01 Oct, 2006

2 commits

  • Conversion of booleans to: generic-boolean.patch (2006-08-23)

    Signed-off-by: Richard Knutsson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Knutsson
     
  • 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
     

30 Sep, 2006

1 commit

  • The on-disk data structures from AIX are not known, also the filesystem
    layout is not known. There is a msdos partition signature at the end of
    the first block, and the kernel recognizes 3 small (and overlapping)
    partitions. But they are not usable. Maybe the firmware uses it to find
    the bootloader for AIX, but AIX boots also if the first block is cleared.

    This is the content of the partition table:
    # dd if=/dev/sdb count=$(( 4 * 16 )) bs=1 skip=$(( 0x1be )) | xxd
    0000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................
    0000010: 80ff ffff 41ff ffff 1b11 0000 381b 0000 ....A.......8...
    0000020: 00ff ffff 41ff ffff 0211 0000 1900 0000 ....A...........
    0000030: 80ff ffff 41ff ffff 1b11 0000 381b 0000 ....A.......8...

    Handle the whole disk as empty disk.

    This fixes also YaST which compares the output from parted (and formerly
    fdisk) with /proc/partitions. fdisk recognizes the AIX label since a long
    time, SuSE has a patch for parted to handle the disk label as unknown.

    dmesg will look like this:
    sda: [AIX] unknown partition table

    Tested on an IBM B50 with AIX V4.3.3.

    Signed-off-by: Olaf Hering
    Cc: Albert Cahalan
    Cc: OGAWA Hirofumi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Olaf Hering
     

27 Sep, 2006

1 commit


27 Aug, 2006

1 commit

  • The current sun disklabel code uses a signed int for the sector count.
    When partitions larger than 1 TB are used, the cast to a sector_t causes
    the partition sizes to be invalid:

    # cat /proc/paritions | grep sdan
    66 112 2146435072 sdan
    66 115 9223372036853660736 sdan3
    66 120 9223372036853660736 sdan8

    This patch switches the sector count to an unsigned int to fix this.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Andrew Morton
    Signed-off-by: David S. Miller

    Jeff Mahoney
     

01 Aug, 2006

1 commit


11 Jul, 2006

1 commit

  • Change the partition code in fs/partitions/check.c to initialize a newly
    detected partition's policy field with that of the containing block device
    (see patch below).

    My reasoning is that function set_disk_ro() in block/genhd.c modifies the
    policy field (read-only indicator) of a disk and all contained partitions.
    When a partition is detected after the call to set_disk_ro(), the policy
    field of this partition will currently not inherit the disk's policy field.
    This behavior poses a problem in cases where a block device can be
    'logically de- and reactivated' like e.g. the s390 DASD driver because
    partition detection may run after the policy field has been modified.

    Signed-off-by: Peter Oberparleiter
    Acked-by: Al Viro
    Makes-sense-to: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Oberparleiter
     

01 Jul, 2006

1 commit


27 Jun, 2006

1 commit