26 Jun, 2006

40 commits

  • cciss is full of inconsistent style ("for (" vs. "for(", lines that end with
    whitespace, lines beginning with a mix of spaces & tabs, etc).

    This patch changes only whitespace.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Jeff Garzik
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Typical Linux style is "return -EINVAL", not "return(-EINVAL)".

    Signed-off-by: Bjorn Helgaas
    Acked-by: Jeff Garzik
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • Fix a few spelling errors.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Jeff Garzik
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • It's easier to verify loop bounds if the array name is mentioned the for()
    statement that steps through the array.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Jeff Garzik
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • We already print "cciss: using DAC cycles" or similar for every adapter found:
    why not just identify the device we're talking about and include other useful
    information?

    Jeff Garzik :

    Although this patch is correct, I would consider using dev_printk() rather
    than referencing pci_name() in printk() arguments.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • We should call pci_request_regions() to claim all resources the device
    decodes. Previously, we claimed only the I/O port range.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Jeff Garzik
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • If something fails after we call pci_enable_device(), we should call
    pci_disable_device() before returning the failure.

    Signed-off-by: Bjorn Helgaas
    Acked-by: Jeff Garzik
    Acked-by: Mike Miller
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bjorn Helgaas
     
  • New section on creating an external initramfs image using cpio (with
    script), a warning about bad advice in the cpio man page, a bit of
    debugging advice (hello world and rdinit=/bin/sh), and a few minor tweaks
    to other parts of it.

    Signed-off-by: Rob Landley
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rob Landley
     
  • Update smbiod to use kthread instead of deprecated kernel_thread.

    [akpm@osdl.org: cleanup]
    Signed-off-by: Serge E. Hallyn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • Update loop.c to use a kthread instead of a deprecated kernel_thread for
    loop devices.

    [akpm@osdl.org: don't change the thread's name]
    Signed-off-by: Serge E. Hallyn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Serge E. Hallyn
     
  • Make kernel-doc corrections & additions to lib/crc*.c. Add crc functions to
    kernel-api.tmpl in DocBook.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Add a new chapter for kernel-lib functions to kernel-api.tmpl. Add
    lib/cmdline.c to the new kernel-lib chapter.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Make corrections/fixes to kernel-doc in lib/bitmap.c and include it in DocBook
    template.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • coverity found two needless checks in vfs_inode.c (cid #1165 and #1164)
    In both cases inode is always NULL when we goto error; either because it
    is still initialized to NULL or is set to NULL explicitly. This patch
    simply removes these checks to save some code.

    Signed-off-by: Eric Sesterhenn
    Acked-by: Eric Van Hensbergen
    Cc: Ron Minnich
    Cc: Latchesar Ionkov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • Fix debug-only printk syntax error.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • When the verbose (-v) option is used with scripts/kernel-doc, this option
    reports when the kernel-doc format is malformed and apparently contains
    function description lines before function parameters. In these cases, the
    kernel-doc script will print something like: Warning(filemap.c:335):
    contents before sections

    I have fixed the problems in mm/filemap.c and added lots of kernel-doc to
    that file (posted to the linux-mm mailing list Mon. 2006-June-12).

    The real goal (as requested by Andrew Morton) is to allow the short
    function description to be more than one line long. This patch is both a
    kernel-doc checker and a tool en route to that goal.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • VFS uses current->files pointer as lock owner ID, and it wouldn't be
    prudent to expose this value to userspace. So scramble it with XTEA using
    a per connection random key, known only to the kernel. Only one direction
    needs to be implemented, since the ID is never sent in the reverse
    direction.

    The XTEA algorithm is implemented inline since it's simple enough to do so,
    and this adds less complexity than if the crypto API were used.

    Thanks to Jesper Juhl for the idea.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Add synchronous request interruption. This is needed for file locking
    operations which have to be interruptible. However filesystem may implement
    interruptibility of other operations (e.g. like NFS 'intr' mount option).

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Rename the 'interrupted' flag to 'aborted', since it indicates exactly that,
    and next patch will introduce an 'interrupted' flag for a

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • All POSIX locks owned by the current task are removed on close(). If the
    FLUSH request resulting initiated by close() fails to reach userspace, there
    might be locks remaining, which cannot be removed.

    The only reason it could fail, is if allocating the request fails. In this
    case use the request reserved for RELEASE, or if that is currently used by
    another FLUSH, wait for it to become available.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • This patch adds POSIX file locking support to the fuse interface.

    This implementation doesn't keep any locking state in kernel. Unlocking on
    close() is handled by the FLUSH message, which now contains the lock owner id.

    Mandatory locking is not supported. The filesystem may enfoce mandatory
    locking in userspace if needed.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Add a control filesystem to fuse, replacing the attributes currently exported
    through sysfs. An empty directory '/sys/fs/fuse/connections' is still created
    in sysfs, and mounting the control filesystem here provides backward
    compatibility.

    Advantages of the control filesystem over the previous solution:

    - allows the object directory and the attributes to be owned by the
    filesystem owner, hence letting unpriviled users abort the
    filesystem connection

    - does not suffer from module unload race

    [akpm@osdl.org: fix this fs for recent dhowells depredations]
    [akpm@osdl.org: fix 64-bit printk warnings]
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Don't put requests into the background when a fatal interrupt occurs while the
    request is in userspace. This removes a major wart from the implementation.

    Backgrounding of requests was introduced to allow breaking of deadlocks.
    However now the same can be achieved by aborting the filesystem through the
    'abort' sysfs attribute.

    This is a change in the interface, but should not cause problems, since these
    kinds of deadlocks never happen during normal operation.

    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • The following patches add POSIX file locking to the fuse interface.

    Additional changes ralated to this are:

    - asynchronous interrupt of requests by SIGKILL no longer supported

    - separate control filesystem, instead of using sysfs objects

    - add support for synchronously interrupting requests

    Details are documented in Documentation/filesystems/fuse.txt throughout the
    patches.

    This patch:

    Have fuse.h use MISC_MAJOR rather than a hardcoded '10'.

    Signed-off-by: Jan Engelhardt
    Signed-off-by: Miklos Szeredi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Engelhardt
     
  • Make another couple of alterations to the memory barrier document following
    suggestions by Alan Stern and in co-operation with Paul McKenney:

    (*) Rework the point of introduction of memory barriers and the description
    of what they are to reiterate why they're needed.

    (*) Modify a statement about the use of data dependency barriers to note that
    other barriers can be used instead (as they imply DD-barriers).

    Signed-off-by: David Howells
    Acked-By: Paul E. McKenney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Another bunch of checks in the char drivers .put_char() and .write()
    routines, where tty can never be NULL. This patch removes these checks to
    save some code. Coverity choked at those with the following bug ids:

    isicom.c 767, 766
    specialix.c 773, 774
    synclink_cs.c 779, 781
    synclink_gt.c 784, 785
    synclinkmp.c 784, 785

    Signed-off-by: Eric Sesterhenn
    Cc: Paul Fulghum
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • Update my contact information in CREDITS.

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

    Niels Kristian Bech Jensen
     
  • I've found a case where invalid dentrys in a mount tree, waiting to be
    cleaned up by d_invalidate, prevent the expected expire.

    In this case dentrys created during a lookup for which a mount fails or has
    no entry in the mount map contribute to the d_count of the parent dentry.
    These dentrys may not be invalidated prior to comparing the interanl usage
    count of valid autofs dentrys against the dentry d_count which makes a
    mount tree appear busy so it doesn't expire.

    Signed-off-by: Ian Kent
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ian Kent
     
  • coverity choked at another two !tty checks, in places where tty can
    never be NULL. Since it removes some code we should remove
    these checks. (Coverity ids #763,#762)

    Signed-off-by Eric Sesterhenn

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

    Eric Sesterhenn
     
  • coverity choked at two !tty checks, in places where tty can never be NULL.
    Since it removes some code we should remove these checks. (Coverity ids
    #763,#762)

    [akpm@osdl.org: even cleaner!]
    Signed-off-by: Eric Sesterhenn
    Acked-by: Alan Cox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Sesterhenn
     
  • If futexes are disabled we fail to link on ppc64.

    Signed-off-by: Anton Blanchard
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Blanchard
     
  • An update to the RCU documentation calling out the
    self-limiting-update-rate advantages of synchronize_rcu(), and describing
    how to use call_rcu() in a way that results in self-limiting updates.
    Self-limiting updates are important to avoiding RCU-induced OOM in face of
    denial-of-service attacks.

    Signed-off-by: Paul E. McKenney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul E. McKenney
     
  • Backoff readahead size exponentially on I/O error.

    Michael Tokarev described the problem as:

    [QUOTE]
    Suppose there's a CD-rom with a scratch/etc, one sector is unreadable.
    In order to "fix" it, one have to read it and write to another CD-rom,
    or something.. or just ignore the error (if it's just a skip in a video
    stream). Let's assume the unreadable block is number U.

    But current behavior is just insane. An application requests block
    number N, which is before U. Kernel tries to read-ahead blocks N..U.
    Cdrom drive tries to read it, re-read it.. for some time. Finally,
    when all the N..U-1 blocks are read, kernel returns block number N
    (as requested) to an application, successefully.

    Now an app requests block number N+1, and kernel tries to read
    blocks N+1..U+1. Retrying again as in previous step.

    And so on, up to when an app requests block number U-1. And when,
    finally, it requests block U, it receives read error.

    So, kernel currentry tries to re-read the same failing block as
    many times as the current readahead value (256 (times?) by default).

    This whole process already killed my cdrom drive (I posted about it
    to LKML several months ago) - literally, the drive has fried, and
    does not work anymore. Ofcourse that problem was a bug in firmware
    (or whatever) of the drive *too*, but.. main problem with that is
    current readahead logic as described above.
    [/QUOTE]

    Which was confirmed by Jens Axboe :

    [QUOTE]
    For ide-cd, it tends do only end the first part of the request on a
    medium error. So you may see a lot of repeats :/
    [/QUOTE]

    With this patch, retries are expected to be reduced from, say, 256, to 5.

    [akpm@osdl.org: cleanups]
    Signed-off-by: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wu Fengguang
     
  • In the error case, add_msg() gets called from timer functions, so should
    be using GFP_ATOMIC instead of GFP_KERNEL.

    Ref: http://bugzilla.kernel.org/show_bug.cgi?id=6659. Thanks to Christian
    Werner for reporting, and for the initial fix.

    Signed-off-by: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Woodhouse
     
  • Priority: not critical.
    Mark 3 functions __init. Saves a little memory.
    This makes these functions' calls to AdvWaitEEPCmd() (which is __init)
    be clean (i.e., eliminates text -> init -> text call chain).

    Fix multiple section mismatch warnings:
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet3550EEPConfig' (at offset 0x7a22) and 'AdvSet38C0800EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet3550EEPConfig' (at offset 0x7a4e) and 'AdvSet38C0800EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet3550EEPConfig' (at offset 0x7a79) and 'AdvSet38C0800EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet3550EEPConfig' (at offset 0x7aa2) and 'AdvSet38C0800EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet3550EEPConfig' (at offset 0x7abb) and 'AdvSet38C0800EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C0800EEPConfig' (at offset 0x7ae0) and 'AdvSet38C1600EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C0800EEPConfig' (at offset 0x7b0c) and 'AdvSet38C1600EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C0800EEPConfig' (at offset 0x7b37) and 'AdvSet38C1600EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C0800EEPConfig' (at offset 0x7b60) and 'AdvSet38C1600EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C0800EEPConfig' (at offset 0x7b79) and 'AdvSet38C1600EEPConfig'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C1600EEPConfig' (at offset 0x7b9e) and 'AdvExeScsiQueue'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C1600EEPConfig' (at offset 0x7bca) and 'AdvExeScsiQueue'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C1600EEPConfig' (at offset 0x7bf5) and 'AdvExeScsiQueue'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C1600EEPConfig' (at offset 0x7c1e) and 'AdvExeScsiQueue'
    WARNING: drivers/scsi/advansys.o - Section mismatch: reference to .init.text: from .text between 'AdvSet38C1600EEPConfig' (at offset 0x7c37) and 'AdvExeScsiQueue'

    Signed-off-by: Randy Dunlap
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Priority: tossup.
    In theory some of these (previously) __init functions could be called
    after init, but that problem has not been observed AFAIK.

    There were 2 cases of cleanup_module() (module_exit) calling __init
    functions (clear_requested_irq() & have_requested_irq()).
    These are more serious, but still not observed AFAIK.

    Fix sections mismatch:
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'cleanup_module' (at offset 0x228b) and 'ip2_loadmain'
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'cleanup_module' (at offset 0x22ae) and 'ip2_loadmain'
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x2501) and 'set_irq'
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x25de) and 'set_irq'
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x2698) and 'set_irq'
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x2922) and 'set_irq'
    WARNING: drivers/char/ip2/ip2main.o - Section mismatch: reference to .init.text: from .text between 'ip2_loadmain' (at offset 0x299e) and 'set_irq'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Priority: not critical.
    Make __mcdx_init() __init and static. Saves a little memory.

    Fix section mismatch warning and make the function static while there:
    WARNING: drivers/cdrom/mcdx.o - Section mismatch: reference to .init.text: from .text between 'init_module' (at offset 0x8be) and 'mcdx_transfer'

    Signed-off-by: Randy Dunlap
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Priority: not critical.
    Change 3 functions from __init to __devinit.
    Could be an init/probe problem in theory, but not observed, so not
    high priority IMO.

    Fix section mismatch warnings:
    WARNING: drivers/video/tridentfb.o - Section mismatch: reference to .init.text: from .text between 'trident_pci_probe' (at offset 0x1aad) and 'trident_pci_remove'
    WARNING: drivers/video/tridentfb.o - Section mismatch: reference to .init.text: from .text between 'trident_pci_probe' (at offset 0x1b22) and 'trident_pci_remove'
    WARNING: drivers/video/tridentfb.o - Section mismatch: reference to .init.text: from .text between 'trident_pci_probe' (at offset 0x1b31) and 'trident_pci_remove'

    Signed-off-by: Randy Dunlap
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • netdev->set_config can be called at any time, so these references
    to __initdata would be a real problem.
    However, problem has not been observed AFAIK.

    Fix section mismatch warnings:
    WARNING: drivers/net/wan/sdla.o - Section mismatch: reference to .init.data: from .text between 'sdla_set_config' (at offset 0x1b8e) and 'sdla_stats'
    WARNING: drivers/net/wan/sdla.o - Section mismatch: reference to .init.data: from .text between 'sdla_set_config' (at offset 0x1e76) and 'sdla_stats'

    Signed-off-by: Randy Dunlap
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • In the course of trying to track down a bug where a file mtime was not
    being updated correctly, it was discovered that the m/ctime updates were
    not quite being handled correctly for ftruncate() calls.

    Quoth SUSv3:

    open(2):

    If O_TRUNC is set and the file did previously exist, upon
    successful completion, open() shall mark for update the st_ctime
    and st_mtime fields of the file.

    truncate(2):

    Upon successful completion, if the file size is changed, this
    function shall mark for update the st_ctime and st_mtime fields
    of the file, and the S_ISUID and S_ISGID bits of the file mode
    may be cleared.

    ftruncate(2):

    Upon successful completion, if fildes refers to a regular file,
    the ftruncate() function shall mark for update the st_ctime and
    st_mtime fields of the file and the S_ISUID and S_ISGID bits of
    the file mode may be cleared. If the ftruncate() function is
    unsuccessful, the file is unaffected.

    The open(O_TRUNC) and truncate cases were being handled correctly, but the
    ftruncate case was being handled like the truncate case. The semantics of
    truncate and ftruncate don't quite match, so ftruncate needs to be handled
    slightly differently.

    The attached patch addresses this issue for ftruncate(2).

    My thanx to Stephen Tweedie and Trond Myklebust for their help in
    understanding the situation and semantics.

    Signed-off-by: Peter Staubach
    Cc: "Stephen C. Tweedie"
    Cc: Trond Myklebust
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Staubach