15 Sep, 2011

4 commits

  • commit 9d8cebd4bcd7 ("mm: fix mbind vma merge problem") didn't really
    fix the mbind vma merge problem due to wrong pgoff value passing to
    vma_merge(), which made vma_merge() always return NULL.

    Before the patch applied, we are getting a result like:

    addr = 0x7fa58f00c000
    [snip]
    7fa58f00c000-7fa58f00d000 rw-p 00000000 00:00 0
    7fa58f00d000-7fa58f00e000 rw-p 00000000 00:00 0
    7fa58f00e000-7fa58f00f000 rw-p 00000000 00:00 0

    here 7fa58f00c000->7fa58f00f000 we get 3 VMAs which are expected to be
    merged described as described in commit 9d8cebd.

    Re-testing the patched kernel with the reproducer provided in commit
    9d8cebd, we get the correct result:

    addr = 0x7ffa5aaa2000
    [snip]
    7ffa5aaa2000-7ffa5aaa6000 rw-p 00000000 00:00 0
    7fffd556f000-7fffd5584000 rw-p 00000000 00:00 0 [stack]

    Signed-off-by: Caspar Zhang
    Cc: KOSAKI Motohiro
    Cc: Christoph Lameter
    Cc: Hugh Dickins
    Cc: Mel Gorman
    Cc: Lee Schermerhorn
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Caspar Zhang
     
  • * git://bedivere.hansenpartnership.com/git/scsi-rc-fixes-2.6: (25 commits)
    [SCSI] bnx2i: Fixed the endian on TTT for NOP out transmission
    [SCSI] libfc: fix referencing to fc_fcp_pkt from the frame pointer via fr_fsp()
    [SCSI] libfc: block SCSI eh thread for blocked rports
    [SCSI] libfc: fix fc_eh_host_reset
    [SCSI] fcoe: Fix deadlock between fip's recv_work and rtnl
    [SCSI] qla2xxx: Update version number to 8.03.07.07-k.
    [SCSI] qla2xxx: Set the task attributes after memsetting fcp cmnd.
    [SCSI] qla2xxx: Correct inadvertent loop state transitions during port-update handling.
    [SCSI] qla2xxx: Save and restore irq in the response queue interrupt handler.
    [SCSI] qla2xxx: Double check for command completion if abort mailbox command fails.
    [SCSI] qla2xxx: Acquire hardware lock while manipulating dsd list.
    [SCSI] qla2xxx: Fix qla24xx revision check while enabling interrupts.
    [SCSI] qla2xxx: T10 DIF - Fix incorrect error reporting.
    [SCSI] qla2xxx: T10 DIF - Handle uninitalized sectors.
    [SCSI] hpsa: fix physical device lun and target numbering problem
    [SCSI] hpsa: fix problem that OBDR devices are not detected
    [SCSI] isci: add version number
    [SCSI] isci: fix event-get pointer increment
    [SCSI] isci: dynamic interrupt coalescing
    [SCSI] isci: Leave requests alone if already terminating.
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://oss.sgi.com/xfs/xfs:
    xfs: fix a use after free in xfs_end_io_direct_write

    Linus Torvalds
     
  • We used to get the victim pinned by dentry_unhash() prior to commit
    64252c75a219 ("vfs: remove dget() from dentry_unhash()") and ->rmdir()
    and ->rename() instances relied on that; most of them don't care, but
    ones that used d_delete() themselves do. As the result, we are getting
    rmdir() oopses on NFS now.

    Just grab the reference before locking the victim and drop it explicitly
    after unlocking, same as vfs_rename_other() does.

    Signed-off-by: Al Viro
    Tested-by: Simon Kirby
    Cc: stable@kernel.org (3.0.x)
    Signed-off-by: Linus Torvalds

    Al Viro
     

14 Sep, 2011

3 commits

  • There is a window in which the ioend that we call inode_dio_wake on
    in xfs_end_io_direct_write is already free. Fix this by storing
    the inode pointer in a local variable.

    This is a fix for the regression introduced in 3.1-rc by
    "fs: move inode_dio_done to the end_io handler".

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Alex Elder

    Christoph Hellwig
     
  • Include to pickup the declarations for sha_transform
    and sha_init to quite the sparse noise:

    warning: symbol 'sha_transform' was not declared. Should it be static?
    warning: symbol 'sha_init' was not declared. Should it be static?

    Signed-off-by: H Hartley Sweeten
    Acked-by: Mandeep Singh Baines
    Signed-off-by: Linus Torvalds

    H Hartley Sweeten
     
  • In pcie_find_smpss(), we have the following statement:

    if (dev->is_hotplug_bridge && (!list_is_singular(&dev->bus->devices) ||
    dev->bus->self->pcie_type != PCI_EXP_TYPE_ROOT_PORT))

    The problem is that at least on my machine, this gets called for the
    root complex (virtual P2P bridge), and dev->bus->self is NULL since
    the parent bus for this is not itself anchor to a PCI device.

    This adds the necessary NULL check.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Jon Mason
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

13 Sep, 2011

11 commits

  • * 'acpi' of git://github.com/lenb/linux:
    acpica: ACPI_MAX_SLEEP should be 2 sec, not 20
    ACPI APEI: Add Kconfig option IRQ_WORK for GHES
    PNP: update pnp.debug usage (needs value on command line)
    APEI: Fix WHEA _OSC call

    Linus Torvalds
     
  • * 'upstream/bugfix' of git://github.com/jsgf/linux-xen:
    xen: use non-tracing preempt in xen_clocksource_read()

    Linus Torvalds
     
  • Len Brown
     
  • Linus Torvalds
     
  • * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    drm: Remove duplicate "return" statement
    drm/nv04/crtc: Bail out if FB is not bound to crtc
    drm/nouveau: fix nv04_sgdma_bind on non-"4kB pages" archs
    drm/nouveau: properly handle allocation failure in nouveau_sgdma_populate
    drm/nouveau: fix oops on pre-semaphore hardware
    drm/nv50/crtc: Bail out if FB is not bound to crtc
    drm/radeon/kms: fix DP detect and EDID fetch for DP bridges

    Linus Torvalds
     
  • * 'fixes' of git://git.linaro.org/people/arnd/arm-soc:
    ARM: CSR: add missing sentinels to of_device_id tables
    ARM: cns3xxx: Fix newly introduced warnings in the PCIe code
    ARM: cns3xxx: Fix compile error caused by hardware.h removed
    ARM: davinci: fix cache flush build error
    ARM: davinci: correct MDSTAT_STATE_MASK
    ARM: davinci: da850 EVM: read mac address from SPI flash
    OMAP: omap_device: fix !CONFIG_SUSPEND case in _noirq handlers
    OMAP2430: hwmod: musb: add missing terminator to omap2430_usbhsotg_addrs[]
    OMAP3: clock: indicate that gpt12_fck and wdt1_fck are in the WKUP clockdomain
    OMAP4: clock: fix compile warning
    OMAP4: clock: re-enable previous clockdomain enable/disable sequence
    OMAP: clockdomain: Wait for powerdomain to be ON when using clockdomain force wakeup
    OMAP: powerdomains: Make all powerdomain target states as ON at init

    Linus Torvalds
     
  • The LTTng 2.0 kernel tracer (stand-alone module package, available at
    http://lttng.org) uses the 0xF6 ioctl range for tracer control and
    transport operations.

    Signed-off-by: Mathieu Desnoyers
    Signed-off-by: Linus Torvalds

    Mathieu Desnoyers
     
  • * 'for-linus' of git://github.com/chrismason/linux:
    Btrfs: add dummy extent if dst offset excceeds file end in
    Btrfs: calc file extent num_bytes correctly in file clone
    btrfs: xattr: fix attribute removal
    Btrfs: fix wrong nbytes information of the inode
    Btrfs: fix the file extent gap when doing direct IO
    Btrfs: fix unclosed transaction handle in btrfs_cont_expand
    Btrfs: fix misuse of trans block rsv
    Btrfs: reset to appropriate block rsv after orphan operations
    Btrfs: skip locking if searching the commit root in csum lookup
    btrfs: fix warning in iput for bad-inode
    Btrfs: fix an oops when deleting snapshots

    Linus Torvalds
     
  • kmemleak is reporting that 32 bytes are being leaked by FUSE:

    unreferenced object 0xe373b270 (size 32):
    comm "fusermount", pid 1207, jiffies 4294707026 (age 2675.187s)
    hex dump (first 32 bytes):
    01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    backtrace:
    [] kmemleak_alloc+0x27/0x50
    [] kmem_cache_alloc+0xc5/0x180
    [] fuse_alloc_forget+0x1e/0x20
    [] fuse_alloc_inode+0xb0/0xd0
    [] alloc_inode+0x1c/0x80
    [] iget5_locked+0x8f/0x1a0
    [] fuse_iget+0x72/0x1a0
    [] fuse_get_root_inode+0x8a/0x90
    [] fuse_fill_super+0x3ef/0x590
    [] mount_nodev+0x3f/0x90
    [] fuse_mount+0x15/0x20
    [] mount_fs+0x1c/0xc0
    [] vfs_kern_mount+0x41/0x90
    [] do_kern_mount+0x39/0xd0
    [] do_mount+0x2e5/0x660
    [] sys_mount+0x66/0xa0

    This leak report is consistent and happens once per boot on
    3.1.0-rc5-dirty.

    This happens if a FORGET request is queued after the fuse device was
    released.

    Reported-by: Sitsofe Wheeler
    Signed-off-by: Miklos Szeredi
    Tested-by: Sitsofe Wheeler
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Commit 37fb3a30b4 ("fuse: fix flock") added in 3.1-rc4 caused flock() to
    fail with ENOSYS with the kernel ABI version 7.16 or earlier.

    Fix by falling back to testing FUSE_POSIX_LOCKS for ABI versions 7.16
    and earlier.

    Reported-by: Martin Ziegler
    Signed-off-by: Miklos Szeredi
    Tested-by: Martin Ziegler
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     
  • Arnd Bergmann
     

12 Sep, 2011

3 commits


11 Sep, 2011

19 commits

  • You can see there's no file extent with range [0, 4096]. Check this by
    btrfsck:

    # btrfsck /dev/sda7
    root 5 inode 258 errors 100
    ...

    Signed-off-by: Li Zefan
    Signed-off-by: Chris Mason

    Li Zefan
     
  • num_bytes should be 4096 not 12288.

    Signed-off-by: Li Zefan
    Signed-off-by: Chris Mason

    Li Zefan
     
  • An attribute is not removed by 'setfattr -x attr file' and remains
    visible in attr list. This makes xfstests/062 pass again.

    Signed-off-by: David Sterba
    Signed-off-by: Chris Mason

    David Sterba
     
  • If we write some data into the data hole of the file(no preallocation for this
    hole), Btrfs will allocate some disk space, and update nbytes of the inode, but
    the other element--disk_i_size needn't be updated. At this condition, we must
    update inode metadata though disk_i_size is not changed(btrfs_ordered_update_i_size()
    return 1).

    # mkfs.btrfs /dev/sdb1
    # mount /dev/sdb1 /mnt
    # touch /mnt/a
    # truncate -s 856002 /mnt/a
    # dd if=/dev/zero of=/mnt/a bs=4K count=1 conv=nocreat,notrunc
    # umount /mnt
    # btrfsck /dev/sdb1
    root 5 inode 257 errors 400
    found 32768 bytes used err is 1

    Signed-off-by: Miao Xie
    Signed-off-by: Chris Mason

    Miao Xie
     
  • When we write some data to the place that is beyond the end of the file
    in direct I/O mode, a data hole will be created. And Btrfs should insert
    a file extent item that point to this hole into the fs tree. But unfortunately
    Btrfs forgets doing it.

    The following is a simple way to reproduce it:
    # mkfs.btrfs /dev/sdc2
    # mount /dev/sdc2 /test4
    # touch /test4/a
    # dd if=/dev/zero of=/test4/a seek=8 count=1 bs=4K oflag=direct conv=nocreat,notrunc
    # umount /test4
    # btrfsck /dev/sdc2
    root 5 inode 257 errors 100

    Reported-by: Tsutomu Itoh
    Signed-off-by: Miao Xie
    Tested-by: Tsutomu Itoh
    Signed-off-by: Chris Mason

    Miao Xie
     
  • The function - btrfs_cont_expand() forgot to close the transaction handle before
    it jump out the while loop. Fix it.

    Signed-off-by: Miao Xie
    Signed-off-by: Chris Mason

    Miao Xie
     
  • At the beginning of create_pending_snapshot, trans->block_rsv is set
    to pending->block_rsv and is used for snapshot things, however, when
    it is done, we do not recover it as will.

    Signed-off-by: Liu Bo
    Signed-off-by: Chris Mason

    Liu Bo
     
  • While truncating free space cache, we forget to change trans->block_rsv
    back to the original one, but leave it with the orphan_block_rsv, and
    then with option inode_cache enable, it leads to countless warnings of
    btrfs_alloc_free_block and btrfs_orphan_commit_root:

    WARNING: at fs/btrfs/extent-tree.c:5711 btrfs_alloc_free_block+0x180/0x350 [btrfs]()
    ...
    WARNING: at fs/btrfs/inode.c:2193 btrfs_orphan_commit_root+0xb0/0xc0 [btrfs]()

    Signed-off-by: Liu Bo
    Signed-off-by: Chris Mason

    Liu Bo
     
  • It's not enough to just search the commit root, since we could be cow'ing the
    very block we need to search through, which would mean that its locked and we'll
    still deadlock. So use path->skip_locking as well. Thanks,

    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • iput() shouldn't be called for inodes in I_NEW state.
    We need to mark inode as constructed first.

    WARNING: at fs/inode.c:1309 iput+0x20b/0x210()
    Call Trace:
    [] warn_slowpath_common+0x7a/0xb0
    [] warn_slowpath_null+0x15/0x20
    [] iput+0x20b/0x210
    [] btrfs_iget+0x1eb/0x4a0
    [] btrfs_run_defrag_inodes+0x136/0x210
    [] cleaner_kthread+0x17f/0x1a0
    [] ? sub_preempt_count+0x9d/0xd0
    [] ? transaction_kthread+0x280/0x280
    [] kthread+0x96/0xa0
    [] kernel_thread_helper+0x4/0x10
    [] ? kthread_worker_fn+0x190/0x190
    [] ? gs_change+0xb/0xb

    Signed-off-by: Sergei Trofimovich
    CC: Konstantin Khlebnikov
    Tested-by: David Sterba
    CC: Josef Bacik
    CC: Chris Mason
    Signed-off-by: Chris Mason

    Sergei Trofimovich
     
  • We can reproduce this oops via the following steps:

    $ mkfs.btrfs /dev/sdb7
    $ mount /dev/sdb7 /mnt/btrfs
    $ for ((i=0; ii_ino
    to BTRFS_EMPTY_SUBVOL_DIR_OBJECTID instead of BTRFS_FIRST_FREE_OBJECTID,
    while the snapshot's location.objectid remains unchanged.

    However, btrfs_ino() does not take this into account, and returns a wrong ino,
    and causes the oops.

    Signed-off-by: Liu Bo
    Signed-off-by: Chris Mason

    Liu Bo
     
  • dvb_usb_device_init calls the frontend_attach method of this driver which
    uses vp7045_usb_ob. In order to have a buffer ready in vp7045_usb_op, it has to
    be allocated before that happens.

    Luckily we can use the whole private data as the buffer as it gets separately
    allocated on the heap via kzalloc in dvb_usb_device_init and is thus apt for
    use via usb_control_msg.

    This fixes a
    BUG: unable to handle kernel paging request at 0000000000001e78

    reported by Tino Keitel and diagnosed by Dan Carpenter.

    Cc: stable@kernel.org # For v3.0 and upper
    Tested-by: Tino Keitel
    Signed-off-by: Florian Mickler
    Signed-off-by: Mauro Carvalho Chehab

    Florian Mickler
     
  • The nuvoton-cir driver was storing up consecutive pulse-pulse and
    space-space samples internally, for no good reason, since
    ir_raw_event_store_with_filter() already merges back to back like
    samples types for us. This should also fix a regression introduced late
    in 3.0 that related to a timeout change, which actually becomes correct
    when coupled with this change. Tested with RC6 and RC5 on my own
    nuvoton-cir hardware atop vanilla 3.0.0, after verifying quirky
    behavior in 3.0 due to the timeout change.

    Reported-by: Stephan Raue
    CC: Stephan Raue
    CC: stable@vger.kernel.org
    Signed-off-by: Jarod Wilson
    Signed-off-by: Mauro Carvalho Chehab

    Jarod Wilson
     
  • In the unlikely case that pci_find_bus() should return NULL
    viacam_serial_is_enabled() is going to dereference a NULL pointer and
    blow up. Better safe than sorry, so be defensive and check the
    pointer.

    Signed-off-by: Jesper Juhl
    Acked-by: Jonathan Corbet
    Signed-off-by: Mauro Carvalho Chehab

    Jesper Juhl
     
  • Fixed missing ids of the codec controls description in the controls.xml file.

    Signed-off-by: Kamil Debski
    Signed-off-by: Kyungmin Park
    Reported-by: Randy Dunlap
    Acked-by: Randy Dunlap
    Signed-off-by: Mauro Carvalho Chehab

    Kamil Debski
     
  • The images are clearer with a lower bridge clock.

    Signed-off-by: Jean-François Moine
    Signed-off-by: Mauro Carvalho Chehab

    Jean-François Moine
     
  • The bug was introduced by git commit 0e4d413af1a9d, giving very dark images.

    Signed-off-by: Luiz Carlos Ramos
    Signed-off-by: Jean-François Moine
    Signed-off-by: Mauro Carvalho Chehab

    Luiz Carlos Ramos
     
  • The list of the webcams which have LED inversion was rebuild scanning
    ms-win .inf files.

    Signed-off-by: Jean-François Moine
    Signed-off-by: Mauro Carvalho Chehab

    Jean-François Moine
     
  • '!' has higher precedence than '&' so we need parenthesis here.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Hans de Goede
    Signed-off-by: Mauro Carvalho Chehab

    Dan Carpenter