1. 24 Apr, 2009 25 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6 · ff91fad2
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
        eCryptfs: Larger buffer for encrypted symlink targets
        eCryptfs: Lock lower directory inode mutex during lookup
        eCryptfs: Remove ecryptfs_unlink_sigs warnings
        eCryptfs: Fix data corruption when using ecryptfs_passthrough
        eCryptfs: Print FNEK sig properly in /proc/mounts
        eCryptfs: NULL pointer dereference in ecryptfs_send_miscdev()
        eCryptfs: Copy lower inode attrs before dentry instantiation
      ff91fad2
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 198aa045
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Update defconfigs for 2.6.30-rc3
        m68k,m68knommu: Wire up preadv and pwritev
        scsi: a4000 - Correct driver unregistration in case of failure
      198aa045
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · 58be18c4
      Linus Torvalds authored
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
        [S390] update default configuration.
        [S390] omit frame pointers on s390 when possible
        [S390] Use tape_generic_offline directly.
        [S390] /proc/stat idle field for idle cpus
        [S390] appldata: avoid deadlock with appldata_mem
        [S390] ipl: fix compile breakage
      58be18c4
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes · 12bac708
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:
        GFS2: Ensure that the inode goal block settings are updated
        GFS2: Fix bug in block allocation
        bitops: Add __ffs64 bitop
      12bac708
    • Linus Torvalds's avatar
      Merge branch 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 60911731
      Linus Torvalds authored
      * 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: Unregister cpufreq notifier on unload
        KVM: x86: release time_page on vcpu destruction
        KVM: Fix overlapping check for memory slots
        KVM: MMU: disable global page optimization
        KVM: ia64: fix locking order entering guest
        KVM: MMU: Fix off-by-one calculating large page count
      60911731
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · d1f53fb9
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
        MAINTAINERS: update IDE entry
        palm_bk3710: palm_bk3710_udmatimings[] CodingStyle fixup
        palm_bk3710: those registers/bitfields don't exist
        mediabay: fix build for CONFIG_BLOCK=n
        ide: Stop disks on reboot for laptop which cuts power
        ide-cd: fix kernel crash on hppa regression
        palm_bk3710: UDMA performance fix
      d1f53fb9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · 90c8fce5
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Add quirk for Packard Bell RS65
        [ALSA] intel8x0: another attempt to fix ac97_clock measure routine
        [ALSA] ac97_codec: increase timeout for analog subsections
        ALSA: hda - Add quirks for Realtek codecs
        ALSA: hda - Fix alc662_init_verbs
        ALSA: keywest: Convert to new-style i2c driver
        ALSA: AOA: Convert onyx and tas codecs to new-style i2c drivers
        ALSA: Atiixp: Add SSID for mute_led quirk (unknown HP model)
        ALSA: us122l: add snd_us122l_free()
        ASoC: Fix warning in wm9705
        ASoC: OMAP: Update contact addresses
        ASoC: pxa-ssp: Don't use SSCR0_SerClkDiv and SSCR0_SCR
        ALSA: us122l: Fix signedness in comparisions
      90c8fce5
    • Alan Cox's avatar
      radio_si470x: Fix free memory corruption · ec5f5bf8
      Alan Cox authored
      The release path for a disconnected device frees the object then unlocks
      the mutex in the freed object...
      
      Found by Dan Carpenter using Smatch
      Signed-off-by: default avatarAlan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ec5f5bf8
    • Niels de Vos's avatar
      serial: remove contact data · 79e95eba
      Niels de Vos authored
      Remove my name and emailaddress from note in the source. Wincor Nixdorf
      only has some ITE-chips on their mainboards, other chips are not
      available for me for testing.
      Signed-off-by: default avatarNiels de Vos <niels.devos@wincor-nixdorf.com>
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79e95eba
    • Alan Cox's avatar
      cafe_nand: Fix warning · 67cd724f
      Alan Cox authored
      Wrong types on IRQ handler
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      67cd724f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 97c68d00
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        cfq-iosched: cache prio_tree root in cfqq->p_root
        cfq-iosched: fix bug with aliased request and cooperation detection
        cfq-iosched: clear ->prio_trees[] on cfqd alloc
        block: fix intermittent dm timeout based oops
        umem: fix request_queue lock warning
        block: simplify I/O stat accounting
        pktcdvd.h should include mempool.h
        cfq-iosched: use the default seek distance when there aren't enough seek samples
        cfq-iosched: make seek_mean converge more quickly
        block: make blk_abort_queue() ignore non-request based devices
        block: include empty disks in /proc/diskstats
        bio: use bio_kmalloc() in copy/map functions
        bio: fix bio_kmalloc()
        block: fix queue bounce limit setting
        block: fix SG_IO vector request data length handling
        scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings
      97c68d00
    • David Howells's avatar
      MN10300: Update the ASB2303 defconfig · 596a5c4e
      David Howells authored
      Update the defconfig for the ASB2303 evaluation board.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      596a5c4e
    • Jonathan Corbet's avatar
      Delete slow-work timers properly · 418df63c
      Jonathan Corbet authored
      Slow-work appears to delete its timer as soon as the first user
      unregisters, even though other users could be active.  At the same time, it
      never seems to delete slow_work_oom_timer.  Arrange for both to happen in
      the shutdown path.
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      418df63c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 3e241ff0
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (94 commits)
        netfilter: ctnetlink: fix gcc warning during compilation
        net/netrom: Fix socket locking
        netlabel: Always remove the correct address selector
        ucc_geth.c: Fix upsmr setting in RMII mode
        8139too: fix HW initial flow
        af_iucv: Fix race when queuing incoming iucv messages
        af_iucv: Test additional sk states in iucv_sock_shutdown
        af_iucv: Reject incoming msgs if RECV_SHUTDOWN is set
        af_iucv: fix oops in iucv_sock_recvmsg() for MSG_PEEK flag
        af_iucv: consider state IUCV_CLOSING when closing a socket
        iwlwifi: DMA fixes
        iwlwifi: add debugging for TX path
        mwl8: fix build warning.
        mac80211: fix alignment calculation bug
        mac80211: do not print WARN if config interface
        iwl3945: use cancel_delayed_work_sync to cancel rfkill_poll
        iwlwifi: fix EEPROM validation mask to include OTP only devices
        atmel: fix netdev ops conversion
        pcnet_cs: add cis(firmware) of the Allied Telesis LA-PCM
        mlx4_en: Fix cleanup if workqueue create in mlx4_en_add() fails
        ...
      3e241ff0
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · dc0046c7
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        sparc: Fix bus type probing for ESP and LE devices.
        sparc32: Update defconfig.
        sparc64: Update defconfig.
      dc0046c7
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · f8c3301e
      Linus Torvalds authored
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        powerpc: Fix modular build of ide-pmac when mediabay is built in
        powerpc/pasemi: Fix build error on UP
        powerpc: Make macintosh/mediabay driver depend on CONFIG_BLOCK
        maintainers: Fix PS3 patterns
        powerpc/ps3: Fix CONFIG_PS3_FLASH=n build warning
        powerpc/32: Don't clobber personality flags on exec
        powerpc: Fix crash on CPU hotplug
        powerpc/85xx: Remove defconfigs that mpc85xx_{smp_}defconfig cover
        powerpc/85xx: Added SMP defconfig
        powerpc/85xx: Enabled a bunch of FSL specific drivers/options
        powerpc/85xx: Updated generic mpc85xx_defconfig
        powerpc: don't disable SATA interrupts on Freescale MPC8610 HPCD
        fsl_rio: Pass the proper device to dma mapping routines
        powerpc: Fix of_node_put() exit path in of_irq_map_one()
        powerpc/5200: defconfig updates
        powerpc/5200: Add FLASH nodes to lite5200 device tree
        powerpc/device-tree: Document MTD nodes with multiple "reg" tuples
        powerpc/of-device-tree: Factor MTD physmap bindings out of booting-without-of
        powerpc/5200: Bring the legacy fsl_spi_platform_data hooks back
      f8c3301e
    • Oleg Nesterov's avatar
      check_unsafe_exec: s/lock_task_sighand/rcu_read_lock/ · 437f7fdb
      Oleg Nesterov authored
      write_lock(&current->fs->lock) guarantees we can't wrongly miss
      LSM_UNSAFE_SHARE, this is what we care about. Use rcu_read_lock()
      instead of ->siglock to iterate over the sub-threads. We must see
      all CLONE_THREAD|CLONE_FS threads which didn't pass exit_fs(), it
      takes fs->lock too.
      
      With or without this patch we can miss the freshly cloned thread
      and set LSM_UNSAFE_SHARE, we don't care.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      [ Fixed lock/unlock typo  - Hugh ]
      Acked-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      437f7fdb
    • Oleg Nesterov's avatar
      do_execve() must not clear fs->in_exec if it was set by another thread · 8c652f96
      Oleg Nesterov authored
      If do_execve() fails after check_unsafe_exec(), it clears fs->in_exec
      unconditionally. This is wrong if we race with our sub-thread which
      also does do_execve:
      
      	Two threads T1 and T2 and another process P, all share the same
      	->fs.
      
      	T1 starts do_execve(BAD_FILE). It calls check_unsafe_exec(), since
      	->fs is shared, we set LSM_UNSAFE but not ->in_exec.
      
      	P exits and decrements fs->users.
      
      	T2 starts do_execve(), calls check_unsafe_exec(), now ->fs is not
      	shared, we set fs->in_exec.
      
      	T1 continues, open_exec(BAD_FILE) fails, we clear ->in_exec and
      	return to the user-space.
      
      	T1 does clone(CLONE_FS /* without CLONE_THREAD */).
      
      	T2 continues without LSM_UNSAFE_SHARE while ->fs is shared with
      	another process.
      
      Change check_unsafe_exec() to return res = 1 if we set ->in_exec, and change
      do_execve() to clear ->in_exec depending on res.
      
      When do_execve() suceeds, it is safe to clear ->in_exec unconditionally.
      It can be set only if we don't share ->fs with another process, and since
      we already killed all sub-threads either ->in_exec == 0 or we are the
      only user of this ->fs.
      
      Also, we do not need fs->lock to clear fs->in_exec.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Acked-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8c652f96
    • Jens Axboe's avatar
      cfq-iosched: cache prio_tree root in cfqq->p_root · f2d1f0ae
      Jens Axboe authored
      Currently we look it up from ->ioprio, but ->ioprio can change if
      either the process gets its IO priority changed explicitly, or if
      cfq decides to temporarily boost it. So if we are unlucky, we can
      end up attempting to remove a node from a different rbtree root than
      where it was added.
      
      Fix this by using ->org_ioprio as the prio_tree index, since that
      will only change for explicit IO priority settings (not for a boost).
      Additionally cache the rbtree root inside the cfqq, then we don't have
      to add code to reinsert the cfqq in the prio_tree if IO priority changes.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      f2d1f0ae
    • Jens Axboe's avatar
      cfq-iosched: fix bug with aliased request and cooperation detection · 3ac6c9f8
      Jens Axboe authored
      cfq_prio_tree_lookup() should return the direct match, yet it always
      returns zero. Fix that.
      
      cfq_prio_tree_add() assumes that we don't get a direct match, while
      it is very possible that we do. Using O_DIRECT, you can have different
      cfqq with matching requests, since you don't have the page cache
      to serialize things for you. Fix this bug by only adding the cfqq if
      there isn't an existing match.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      3ac6c9f8
    • Jens Axboe's avatar
      cfq-iosched: clear ->prio_trees[] on cfqd alloc · 26a2ac00
      Jens Axboe authored
      Not strictly needed, but we should make it clear that we init the
      rbtree roots here.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      26a2ac00
    • Hannes Reinecke's avatar
      block: fix intermittent dm timeout based oops · 17d5c8ca
      Hannes Reinecke authored
      Very rarely under stress testing of dm, oopses are occuring as
      something tampers with an old stack frame.  This has been traced back
      to blk_abort_queue() leaving a timeout_list pointing to the stack.
      The reason is that sometimes blk_abort_request() won't delete the
      timer (if the request is marked as complete but before the timer has
      been removed, a small race window).  Fix this by splicing back from
      the ususally empty list to the q->timeout_list.
      Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      17d5c8ca
    • Sage Weil's avatar
      umem: fix request_queue lock warning · f3c737de
      Sage Weil authored
      The umem driver issues two warnings on boot, due to blk_plug_device() and
      blk_remove_plug() being called without q->queue_lock held.  Starting with
      e48ec690 (block: extend queue_flag bitops), the queue_flag_* functions
      warn if q->queue_lock doesn't appear to be locked.  In fact, q->queue_lock
      is NULL (though that apparently isn't otherwise a problem as the driver is
      using card->lock for everything).
      
      Although blk_init_queue() with take a request_fn_proc and spinlock_t*,
      there isn't a corresponding init helper that takes a make_request_fn.
      Setting queue_lock to &card->lock explicitly seems to work fine for me.
      The warning goes away and the device appears to behave.
      
      [    1.531881] v2.3 : Micro Memory(tm) PCI memory board block driver
      [    1.538136] umem 0000:02:01.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
      [    1.545018] umem 0000:02:01.0: Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))
      [    1.554176] umem 0000:02:01.0: CSR 0xfc9ffc00 -> 0xffffc200013d0c00 (0x100)
      [    1.561279] umem 0000:02:01.0: Size 1048576 KB, Battery 1 Disabled (FAILURE), Battery 2 Disabled (FAILURE)
      [    1.571114] umem 0000:02:01.0: Window size 16777216 bytes, IRQ 20
      [    1.577304] umem 0000:02:01.0: memory NOT initialized. Consider over-writing whole device.
      [    1.585989]  umema:<4>------------[ cut here ]------------
      [    1.591775] WARNING: at include/linux/blkdev.h:492 blk_plug_device+0x6d/0x106()
      [    1.592025] Hardware name: H8SSL
      [    1.592025] Modules linked in:
      [    1.592025] Pid: 1, comm: swapper Not tainted 2.6.29 #8
      [    1.592025] Call Trace:
      [    1.592025]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
      [    1.592025]  [<ffffffff8025a5b5>] ? save_trace+0x3f/0x9b
      [    1.592025]  [<ffffffff8025a68b>] ? add_lock_to_list+0x7a/0xba
      [    1.592025]  [<ffffffff8025e609>] ? validate_chain+0xb3b/0xce8
      [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
      [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
      [    1.592025]  [<ffffffff8025ef04>] ? __lock_acquire+0x74e/0x7b9
      [    1.592025]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
      [    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
      [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
      [    1.592025]  [<ffffffff803ad165>] blk_plug_device+0x6d/0x106
      [    1.592025]  [<ffffffff80441575>] mm_make_request+0x46/0x59
      [    1.592025]  [<ffffffff803ac2d9>] generic_make_request+0x335/0x3cf
      [    1.592025]  [<ffffffff8027fcc7>] ? mempool_alloc_slab+0x11/0x13
      [    1.592025]  [<ffffffff8027fdce>] ? mempool_alloc+0x45/0x101
      [    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
      [    1.592025]  [<ffffffff803adda5>] submit_bio+0x10a/0x119
      [    1.592025]  [<ffffffff802c8d00>] submit_bh+0xe5/0x109
      [    1.592025]  [<ffffffff802cbf43>] block_read_full_page+0x2aa/0x2cb
      [    1.592025]  [<ffffffff802cf4c4>] ? blkdev_get_block+0x0/0x4c
      [    1.592025]  [<ffffffff805c90a8>] ? _spin_unlock_irq+0x36/0x51
      [    1.592025]  [<ffffffff80286836>] ? __lru_cache_add+0x92/0xb2
      [    1.592025]  [<ffffffff802cf008>] blkdev_readpage+0x13/0x15
      [    1.592025]  [<ffffffff8027de06>] read_cache_page_async+0x90/0x134
      [    1.592025]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
      [    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.592025]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
      [    1.592025]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
      [    1.592025]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
      [    1.592025]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
      [    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.592025]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
      [    1.592025]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
      [    1.592025]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
      [    1.592025]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
      [    1.592025]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
      [    1.592025]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
      [    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.592025]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
      [    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.592025]  [<ffffffff80209056>] _stext+0x56/0x130
      [    1.592025]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
      [    1.592025]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
      [    1.592025]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
      [    1.592025]  [<ffffffff8020d17a>] child_rip+0xa/0x20
      [    1.592025]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
      [    1.592025]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
      [    1.592025]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
      [    1.592025] ---[ end trace 7150b3b86da74e1e ]---
      [    1.889858] ------------[ cut here ]------------[ve_plug+0x5f/0x91()
      [    1.893848] Hardware name: H8SSL
      [    1.893848] Modules linked in:
      [    1.893848] Pid: 1, comm: swapper Tainted: G        W  2.6.29 #8
      [    1.893848] Call Trace:
      [    1.893848]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
      [    1.893848]  [<ffffffff805c8411>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
      [    1.893848]  [<ffffffff80254245>] ? __atomic_notifier_call_chain+0x0/0xb2
      [    1.893848]  [<ffffffff805c90a3>] ? _spin_unlock_irq+0x31/0x51
      [    1.893848]  [<ffffffff805c90bf>] ? _spin_unlock_irq+0x4d/0x51
      [    1.893848]  [<ffffffff8044157d>] ? mm_make_request+0x4e/0x59
      [    1.893848]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
      [    1.893848]  [<ffffffff8025a75d>] ? put_lock_stats+0x25/0x27
      [    1.893848]  [<ffffffff80441504>] ? mm_unplug_device+0x25/0x50
      [    1.893848]  [<ffffffff803acf23>] blk_remove_plug+0x5f/0x91
      [    1.893848]  [<ffffffff8044150f>] mm_unplug_device+0x30/0x50
      [    1.893848]  [<ffffffff803ab74a>] blk_unplug+0x78/0x7d
      [    1.893848]  [<ffffffff803ab75c>] blk_backing_dev_unplug+0xd/0xf
      [    1.893848]  [<ffffffff802c853c>] block_sync_page+0x4a/0x4c
      [    1.893848]  [<ffffffff8027da1c>] sync_page+0x44/0x4d
      [    1.893848]  [<ffffffff805c66fd>] __wait_on_bit_lock+0x42/0x8a
      [    1.893848]  [<ffffffff8027d9d8>] ? sync_page+0x0/0x4d
      [    1.893848]  [<ffffffff8027d9c4>] __lock_page+0x64/0x6b
      [    1.893848]  [<ffffffff802508db>] ? wake_bit_function+0x0/0x2a
      [    1.893848]  [<ffffffff8027de4a>] read_cache_page_async+0xd4/0x134
      [    1.893848]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
      [    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.893848]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
      [    1.893848]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
      [    1.893848]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
      [    1.893848]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
      [    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.893848]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
      [    1.893848]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
      [    1.893848]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
      [    1.893848]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
      [    1.893848]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
      [    1.893848]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
      [    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.893848]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
      [    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.893848]  [<ffffffff80209056>] _stext+0x56/0x130
      [    1.893848]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
      [    1.893848]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
      [    1.893848]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
      [    1.893848]  [<ffffffff8020d17a>] child_rip+0xa/0x20
      [    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
      [    1.893848]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
      [    1.893848]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
      [    1.893848] ---[ end trace 7150b3b86da74e1f ]---
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      f3c737de
    • Jerome Marchand's avatar
      block: simplify I/O stat accounting · 42dad764
      Jerome Marchand authored
      This simplifies I/O stat accounting switching code and separates it
      completely from I/O scheduler switch code.
      
      Requests are accounted according to the state of their request queue
      at the time of the request allocation. There is no need anymore to
      flush the request queue when switching I/O accounting state.
      Signed-off-by: default avatarJerome Marchand <jmarchan@redhat.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      42dad764
    • Alexander Beregalov's avatar
      pktcdvd.h should include mempool.h · 097102c2
      Alexander Beregalov authored
      Fix this build error:
      In file included from fs/compat_ioctl.c:104:
      include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before 'mempool_t'
      Signed-off-by: default avatarAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      097102c2
  2. 23 Apr, 2009 12 commits
  3. 22 Apr, 2009 3 commits
    • Tyler Hicks's avatar
      eCryptfs: Larger buffer for encrypted symlink targets · 3a6b42ca
      Tyler Hicks authored
      When using filename encryption with eCryptfs, the value of the symlink
      in the lower filesystem is encrypted and stored as a Tag 70 packet.
      This results in a longer symlink target than if the target value wasn't
      encrypted.
      
      Users were reporting these messages in their syslog:
      
      [ 45.653441] ecryptfs_parse_tag_70_packet: max_packet_size is [56]; real
      packet size is [51]
      [ 45.653444] ecryptfs_decode_and_decrypt_filename: Could not parse tag
      70 packet from filename; copying through filename as-is
      
      This was due to bufsiz, one the arguments in readlink(), being used to
      when allocating the buffer passed to the lower inode's readlink().
      That symlink target may be very large, but when decoded and decrypted,
      could end up being smaller than bufsize.
      
      To fix this, the buffer passed to the lower inode's readlink() will
      always be PATH_MAX in size when filename encryption is enabled.  Any
      necessary truncation occurs after the decoding and decrypting.
      Signed-off-by: default avatarTyler Hicks <tyhicks@linux.vnet.ibm.com>
      3a6b42ca
    • Tyler Hicks's avatar
      eCryptfs: Lock lower directory inode mutex during lookup · ca8e34f2
      Tyler Hicks authored
      This patch locks the lower directory inode's i_mutex before calling
      lookup_one_len() to find the appropriate dentry in the lower filesystem.
      This bug was found thanks to the warning set in commit 2f9092e1.
      Signed-off-by: default avatarTyler Hicks <tyhicks@linux.vnet.ibm.com>
      ca8e34f2
    • Geert Uytterhoeven's avatar
      adfe7c69