14 Jul, 2005

10 commits

  • Add special case for the POSIX_FADV_DONTNEED and POSIX_FADV_NOREUSE hint
    values for s390-64. The user space values in the s390-64 glibc headers for
    these two defines have always been 6 and 7 instead of 4 and 5. All 64 bit
    applications therefore use the "wrong" values. To get these applications
    working without recompiling the kernel needs to accept the "wrong" values.
    Since the values for s390-31 are 4 and 5 the compat wrapper for fadvise64
    and fadvise64_64 need to rewrite the values for 31 bit system calls.

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

    Martin Schwidefsky
     
  • Fix for a race condition when a task gets preempted by another task while
    executing the destroy_context(...) in a FEW_CONTEXTS environment.
    mm->context == NO_CONTEXT but the context_map may indicate all contexts are
    in use.

    The solution to this problem is to disable kernel preemption while
    destroying a MMU context.

    Signed-off-by: Guillaume Autran
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guillaume Autran
     
  • Something has changed in the core kernel such that we now get concurrent
    inode write outs, one e.g via pdflush and one via sys_sync or whatever.
    This causes a nasty deadlock in ntfs. The only clean solution
    unfortunately requires a minor vfs api extension.

    First the deadlock analysis:

    Prerequisive knowledge: NTFS has a file $MFT (inode 0) loaded at mount
    time. The NTFS driver uses the page cache for storing the file contents as
    usual. More interestingly this file contains the table of on-disk inodes
    as a sequence of MFT_RECORDs. Thus NTFS driver accesses the on-disk inodes
    by accessing the MFT_RECORDs in the page cache pages of the loaded inode
    $MFT.

    The situation: VFS inode X on a mounted ntfs volume is dirty. For same
    inode X, the ntfs_inode is dirty and thus corresponding on-disk inode,
    which is as explained above in a dirty PAGE_CACHE_PAGE belonging to the
    table of inodes ($MFT, inode 0).

    What happens:

    Process 1: sys_sync()/umount()/whatever... calls __sync_single_inode() for
    $MFT -> do_writepages() -> write_page for the dirty page containing the
    on-disk inode X, the page is now locked -> ntfs_write_mst_block() which
    clears PageUptodate() on the page to prevent anyone else getting hold of it
    whilst it does the write out (this is necessary as the on-disk inode needs
    "fixups" applied before the write to disk which are removed again after the
    write and PageUptodate is then set again). It then analyses the page
    looking for dirty on-disk inodes and when it finds one it calls
    ntfs_may_write_mft_record() to see if it is safe to write this on-disk
    inode. This then calls ilookup5() to check if the corresponding VFS inode
    is in icache(). This in turn calls ifind() which waits on the inode lock
    via wait_on_inode whilst holding the global inode_lock.

    Process 2: pdflush results in a call to __sync_single_inode for the same
    VFS inode X on the ntfs volume. This locks the inode (I_LOCK) then calls
    write-inode -> ntfs_write_inode -> map_mft_record() -> read_cache_page() of
    the page (in page cache of table of inodes $MFT, inode 0) containing the
    on-disk inode. This page has PageUptodate() clear because of Process 1
    (see above) so read_cache_page() blocks when tries to take the page lock
    for the page so it can call ntfs_read_page().

    Thus Process 1 is holding the page lock on the page containing the on-disk
    inode X and it is waiting on the inode X to be unlocked in ifind() so it
    can write the page out and then unlock the page.

    And Process 2 is holding the inode lock on inode X and is waiting for the
    page to be unlocked so it can call ntfs_readpage() or discover that
    Process 1 set PageUptodate() again and use the page.

    Thus we have a deadlock due to ifind() waiting on the inode lock.

    The only sensible solution: NTFS does not care whether the VFS inode is
    locked or not when it calls ilookup5() (it doesn't use the VFS inode at
    all, it just uses it to find the corresponding ntfs_inode which is of
    course attached to the VFS inode (both are one single struct); and it uses
    the ntfs_inode which is subject to its own locking so I_LOCK is irrelevant)
    hence we want a modified ilookup5_nowait() which is the same as ilookup5()
    but it does not wait on the inode lock.

    Without such functionality I would have to keep my own ntfs_inode cache in
    the NTFS driver just so I can find ntfs_inodes independent of their VFS
    inodes which would be slow, memory and cpu cycle wasting, and incredibly
    stupid given the icache already exists in the VFS.

    Below is a patch that does the ilookup5_nowait() implementation in
    fs/inode.c and exports it.

    ilookup5_nowait.diff:

    Introduce ilookup5_nowait() which is basically the same as ilookup5() but
    it does not wait on the inode's lock (i.e. it omits the wait_on_inode()
    done in ifind()).

    This is needed to avoid a nasty deadlock in NTFS.

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

    Anton Altaparmakov
     
  • Really simple, basic cleanup.

    Signed-off-by: Robert Love
    Signed-off-by: Linus Torvalds

    Robert Love
     
  • This rearranges the event ordering for "open" to be consistent with the
    ordering of the other events.

    Signed-off-by: Robert Love
    Signed-off-by: Linus Torvalds

    Robert Love
     
  • This moves the inotify sysctl knobs to "/proc/sys/fs/inotify" from
    "/proc/sys/fs". Also some related cleanup.

    Signed-off-by: Robert Love
    Signed-off-by: Linus Torvalds

    Robert Love
     
  • This patch:

    [PATCH] Remove i386_ksyms.c, almost

    made files like smp.c do their own EXPORT_SYMBOLS. This means that all
    subarchitectures that override these symbols now have to do the exports
    themselves. This patch adds the exports for voyager (which is the most
    affected since it has a separate smp harness). However, someone should
    audit all the other subarchitectures to see if any others got broken.

    Signed-off-by: James Bottomley
    Signed-off-by: Linus Torvalds

    James Bottomley
     
  • Linus Torvalds
     
  • When I recently submitted a Lindent patch, it turned out that my .indent.pro
    options were also applied to the tree. This patch directs indent(1) to ignore
    the .indent.pro directives and only use options specified on the command
    line.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     
  • Linus Torvalds
     

13 Jul, 2005

30 commits

  • It turns out this is due to some inverted logic in xattr.c

    Signed-off-by: Dave Kleikamp

    Ian Dall
     
  • All of the different xattr namespaces have different rules.
    user.* and ACL's are not allowed on symlinks, and since these were the
    first xattrs implemented, I assumed there was no need to support xattrs
    on symlinks. This one-line patch should fix it.

    Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     
  • Signed-off-by: Dave Kleikamp

    Dave Kleikamp
     
  • Yeah, this time hopefully I'm not confusing the version
    numbers. The last release was -rc2, _this_ is -rc3.

    Linus Torvalds
     
  • inotify is intended to correct the deficiencies of dnotify, particularly
    its inability to scale and its terrible user interface:

    * dnotify requires the opening of one fd per each directory
    that you intend to watch. This quickly results in too many
    open files and pins removable media, preventing unmount.
    * dnotify is directory-based. You only learn about changes to
    directories. Sure, a change to a file in a directory affects
    the directory, but you are then forced to keep a cache of
    stat structures.
    * dnotify's interface to user-space is awful. Signals?

    inotify provides a more usable, simple, powerful solution to file change
    notification:

    * inotify's interface is a system call that returns a fd, not SIGIO.
    You get a single fd, which is select()-able.
    * inotify has an event that says "the filesystem that the item
    you were watching is on was unmounted."
    * inotify can watch directories or files.

    Inotify is currently used by Beagle (a desktop search infrastructure),
    Gamin (a FAM replacement), and other projects.

    See Documentation/filesystems/inotify.txt.

    Signed-off-by: Robert Love
    Cc: John McCutchan
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Robert Love
     
  • This was a pure indentation change, using:

    scripts/Lindent fs/reiserfs/*.c include/linux/reiserfs_*.h

    to make reiserfs match the regular Linux indentation style. As Jeff
    Mahoney writes:

    The ReiserFS code is a mix of a number of different coding styles, sometimes
    different even from line-to-line. Since the code has been relatively stable
    for quite some time and there are few outstanding patches to be applied, it
    is time to reformat the code to conform to the Linux style standard outlined
    in Documentation/CodingStyle.

    This patch contains the result of running scripts/Lindent against
    fs/reiserfs/*.c and include/linux/reiserfs_*.h. There are places where the
    code can be made to look better, but I'd rather keep those patches separate
    so that there isn't a subtle by-hand hand accident in the middle of a huge
    patch. To be clear: This patch is reformatting *only*.

    A number of patches may follow that continue to make the code more consistent
    with the Linux coding style.

    Hans wasn't particularly enthusiastic about these patches, but said he
    wouldn't really oppose them either.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • indent(1) doesn't know how to handle the "do not compile" error. It results
    in the item_ops array declaration being indented a tab stop in when it should
    not be. This patch replaces it with a #error that describes why it's failing.

    Signed-off-by: Jeff Mahoney
    Signed-off-by: Linus Torvalds

    Jeff Mahoney
     
  • Handle writes to a snapshot-origin device that has been extended since the
    snapshot was taken.

    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • Fix dm_swap_table() __bind error cases: a missing unlock, and EINVAL
    preferable to EPERM.

    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • Prevent more than one priority group initialisation function from being
    outstanding at once. Otherwise the completion functions interfere with each
    other. Also, reloading the table could reference a freed pointer.

    Only reset queue_io in pg_init_complete if another pg_init isn't required.
    Skip process_queued_ios if the queue is empty so that we only trigger a
    pg_init if there's I/O.

    Signed-off-by: Lars Marowsky-Bree
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • To avoid deadlock when suspending a multipath device after all its paths have
    failed, stop queueing any I/O that is about to fail *before* calling
    freeze_bdev instead of after.

    Instead of setting a multipath 'suspended' flag which would have to be reset
    if an error occurs during the process, save the previous queueing state and
    leave userspace to restore if it wishes.

    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • The multipath destructor must flush its workqueue. Otherwise items that
    reference the destroyed object could remain.

    From: "goggin, edward"
    Signed-off-by: Lars Marowsky-Bree
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • dm multipath will report barriers as not supported with this patch.

    Signed-off-by: Lars Marowsky-Bree
    Signed-off-by: Alasdair G Kergon
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alasdair G Kergon
     
  • Linus Torvalds
     
  • Always include dvb frontend code for hybrid cx88 and saa7134 boards.

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

    Michael Krufky
     
  • - Eliminated unused code.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - obsolete TUNER_SET_TVFREQ changed to VIDIOCSFREQ.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Corrected all cards marked as 7135 cards to 7133.
    - Add new card support for Compro VideoMate TV Gold+II.
    - Add new card support for Kworld Xpert TV PVR7134
    - Add new card support for Typhoon DVB-T Cardbus.
    - Changes to comply with CodingStyle: // comments converted to /* */
    - Remove irq2_mask field from saa7134_dev structure.
    - Collect all the bits needed in saa7134_hwinit2() instead.
    - Distinguish the different variants of the Medion MD7134 modules via eeprom
    - moved Philips FMD1216 radio specific setup to saa7134-core.c
    - Fix kernel compile error with CONFIG_MODULES=n
    - Cleanup tuner private calls.
    - Some Indent fixes.

    Signed-off-by: Michael Tokarev
    Signed-off-by: Michael Krufky
    Signed-off-by: Hannibal
    Signed-off-by: Elshin Roman
    Signed-off-by: Hermann Pitton
    Signed-off-by: Juergen Orschiedt
    Signed-off-by: Hartmut Hackmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - driver command adapted to use new control (TUNER_SET_TYPE_ADDR,
    instead of TUNER_SET_TYPE)

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Removed obsolete option. Current code needs multi tuner.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Fixed a trouble on tuner-core that generates erros on computers with more
    than one TV card.
    - Rename tuner structures fields.
    - Tail spaces removed.
    - I2C cleanups and converged to a basic reference structure.
    - Removed unused structures.
    - Fix setting frequency on tda8290.
    - Added code for TEA5767 autodetection.
    - Standby mode support implemented. It is used to disable
    a non used tuner. Currenlty implemented on tea5767.
    - New macro: set_type disables other tuner when changing mode.
    - Some cleanups.
    - Use 50 kHz step when tunning radio for most tuners to improve precision.

    Signed-off-by: Fabien Perrot
    Signed-off-by: Michael Krufky
    Signed-off-By: Nickolay V. Shmyrev
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Removed unused structures.
    - CodingStyle rules applied to comments.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Removed unused structures.
    - CodingStyle rules applied to comments.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Removed unused structures.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Card definitions updated.
    - Tail spaces removed.
    - Mark all 7135 cards as 7133.
    - Correct info about sync byte for MPEG-2 transport stream packets.

    Signed-off-by: Michael Krufky
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: hermann pitton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Add new Typhoon DVB-T Cardbus.
    - DVB-T support for MD7134 cardbus and the PCI variants
    - initial DVB-T support for Lifeview Flydvb-t duo
    - DVB-T support for Philips TOUGH reference design
    - Don't turn off the xtal output of tda8274/75 in sleep mode
    - Let Kconfig decide whether to include frontend-specific code in saa7134-dvb.
    - Removed unused structures.

    Signed-off-by: Juergen Orschiedt
    Signed-off-by: Michael Krufky
    Signed-off-by: Hartmut Hackmann
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - Removed unused structures.
    - Removed BTTV version check.
    - Some debug structs moved to their own .c file and converted to static
    - Comment changed to express better when attach_inform is running
    - set_freq removed from set_mode at tuner-core.c.
    - I2C cleanups and converged to a basic reference structure.
    - Rename tuner structures fields.
    - It calls VIDIOC_G_FREQUENCY to get tuner freq from tuner.
    - added missing contrast offset value, set to 0.
    - Let Kconfig decide whether to include frontend-specific code.

    Signed-Off-By: Nickolay V. Shmyrev
    Signed-off-by: Michael Krufky
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - use DMA_32BIT_MASK.
    - Rename tuner structures fields.
    - Tail spaces removed.
    - I2C cleanups and converged to a basic reference structure.
    - Removed unused structures.
    - Removed BTTV version check.

    Signed-off-by:
    Signed-off-by: Michael Krufky
    Signed-Off-By: Nickolay V. Shmyrev
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • Changes to comply with CodingStyle: // comments converted to /* */

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mauro Carvalho Chehab
     
  • - stop log spamming when running femon (printk -> dprintk)

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

    Johannes Stezenbach