The patch titled pdflush: handle resume wakeups has been removed from the -mm tree. Its filename is pdflush-handle-resume-wakeups.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: pdflush: handle resume wakeups From: Andrew Morton <akpm@xxxxxxxx> pdflush is carefully designed to ensure that all wakeups have some corresponding work to do - if a woken-up pdflush thread discovers that it hasn't been given any work to do then this is considered an error. That all broke when swsusp came along - because a timer-delivered wakeup to a frozen pdflush thread will just get lost. This causes the pdflush thread to get lost as well: the writeback timer is supposed to be re-armed by pdflush in process context, but pdflush doesn't execute the callout which does this. Fix that up by ignoring the return value from try_to_freeze(): jsut proceed, see if we have any work pending and only go back to sleep if that is not the case. Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- mm/pdflush.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff -puN mm/pdflush.c~pdflush-handle-resume-wakeups mm/pdflush.c --- a/mm/pdflush.c~pdflush-handle-resume-wakeups +++ a/mm/pdflush.c @@ -104,21 +104,20 @@ static int __pdflush(struct pdflush_work list_move(&my_work->list, &pdflush_list); my_work->when_i_went_to_sleep = jiffies; spin_unlock_irq(&pdflush_lock); - schedule(); - if (try_to_freeze()) { - spin_lock_irq(&pdflush_lock); - continue; - } - + try_to_freeze(); spin_lock_irq(&pdflush_lock); if (!list_empty(&my_work->list)) { - printk("pdflush: bogus wakeup!\n"); + /* + * Someone woke us up, but without removing our control + * structure from the global list. swsusp will do this + * in try_to_freeze()->refrigerator(). Handle it. + */ my_work->fn = NULL; continue; } if (my_work->fn == NULL) { - printk("pdflush: NULL work function\n"); + printk("pdflush: bogus wakeup\n"); continue; } spin_unlock_irq(&pdflush_lock); _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch disable-debugging-version-of-write_lock.patch acpi-update-asus_acpi-driver-registration-fix.patch catch-notification-of-memory-add-event-of-acpi-via-container-driver-register-start-func-for-memory-device.patch catch-notification-of-memory-add-event-of-acpi-via-container-driveravoid-redundant-call-add_memory.patch acpi-asus-s3-resume-fix-fix.patch sony_apci-resume.patch git-agpgart.patch kauditd_thread-warning-fix.patch git-cifs.patch usb-move-linux-usb_input.h-to-linux-usb-input-fix.patch i2c-801-64bit-resource-fix.patch git-geode-fixup.patch git-gfs2.patch gfs2-get_sb_dev-fix.patch git-input.patch git-kbuild.patch revert-sparc-build-breakage.patch git-klibc.patch git-klibc-fixup.patch git-hdrcleanup-vs-git-klibc-on-ia64.patch git-hdrcleanup-vs-git-klibc-on-ia64-2.patch libata-reduce-timeouts.patch libatah-needs-scatterlisth.patch sata-is-bust-on-s390.patch forcedeth-typecast-cleanup.patch qla3xxx-is-bust.patch atm-mpcc-warning-fix.patch git-pcmcia-fixup.patch powerpc-kcofnig-warning-fix.patch serial-8250-sysrq-deadlock-fix.patch serial-fix-uart_bug_txen-test.patch revert-gregkh-pci-pci-test-that-drivers-properly-call-pci_set_master.patch clear-abnormal-poweroff-flag-on-via-southbridges-fix-resume-fix.patch areca-raid-linux-scsi-driver.patch git-scsi-target-fixup.patch git-supertrak-fixup.patch pgdat-allocation-for-new-node-add-export-kswapd-start-func-fix.patch adix-tree-rcu-lockless-readside-update-tidy.patch zoned-vm-counters-create-vmstatc-h-from-page_allocc-h-s390-fix.patch zoned-vm-counters-create-vmstatc-h-from-page_allocc-h-fix.patch zoned-vm-counters-basic-zvc-zoned-vm-counter-implementation-tidy.patch zoned-vm-counters-convert-nr_mapped-to-per-zone-counter-fix.patch zoned-vm-counters-remove-nr_file_mapped-from-scan-control-structure-fix.patch zoned-vm-counters-conversion-of-nr_slab-to-per-zone-counter-fix.patch zoned-vm-counters-conversion-of-nr_pagetables-to-per-zone-counter-fix.patch zoned-vm-counters-conversion-of-nr_dirty-to-per-zone-counter-fix.patch zoned-vm-counters-conversion-of-nr_writeback-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_writeback-to-per-zone-counter-fix.patch zoned-vm-counters-conversion-of-nr_unstable-to-per-zone-counter-nfs-fix.patch zoned-vm-counters-conversion-of-nr_unstable-to-per-zone-counter-fix.patch zoned-vm-counters-conversion-of-nr_bounce-to-per-zone-counter.patch zoned-vm-counters-conversion-of-nr_bounce-to-per-zone-counter-fix.patch zoned-vm-counters-remove-read_page_state.patch acx1xx-wireless-driver.patch tiacx-pci-build-fix.patch tiacx-ia64-fix.patch i386-moving-phys_proc_id-and-cpu_core_id-to-cpuinfo_x86-warning-fix.patch vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-tidy.patch vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-arch_vma_name-fix.patch vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386.patch vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386-2.patch vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386-2-revert-maxmem-change.patch deprecate-smbfs-in-favour-of-cifs.patch add-export_unused_symbol-and-export_unused_symbol_gpl-default.patch load_module-cleanup.patch add-receive_room-flow-control-to-flush_to_ldisc-tidy.patch reiserfs-on-demand-bitmap-loading-fix.patch cpu-hotplug-make-cpu_notifier-related-notifier-calls-__cpuinit-only-fix-fix.patch per-task-delay-accounting-proc-export-of-aggregated-block-i-o-delays-warning-fix.patch add-via-hw-rng-driver-fix.patch add-bcm43xx-hw-rng-support-locking-update.patch hangcheck-remove-monotomic_clock-on-x86.patch sched-fix-smt-nice-lock-contention-and-optimization-tidy.patch swap_prefetch-vs-zoned-counters.patch pi-futex-rt-mutex-tester-fix.patch rtmutex-propagate-priority-settings-into-pi-lock-chains-fix.patch mark-address_space_operations-const-vs-ecryptfs-mmap-operations.patch ecryptfs-alpha-build-fix.patch ecryptfs-more-elegant-aes-key-size-manipulation-tidy.patch ecryptfs-get_sb_dev-fix.patch namespaces-add-nsproxy-dont-include-compileh.patch namespaces-utsname-switch-to-using-uts-namespaces-alpha-fix.patch namespaces-utsname-use-init_utsname-when-appropriate-cifs-update.patch namespaces-utsname-implement-utsname-namespaces-export.patch namespaces-utsname-implement-utsname-namespaces-dont-include-compileh.patch namespaces-utsname-sysctl-hack-cleanup-2-fix.patch ipc-namespace-core-fix.patch task-watchers-task-watchers-tidy.patch task-watchers-add-support-for-per-task-watchers-warning-fix.patch readahead-sysctl-parameters-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch hpt3xx-rework-rate-filtering-tidy.patch savagefb-add-state-save-and_restore-hooks-tidy.patch au1100fb-add-power-management-support-tidy.patch imacfb-add-intel-based-macintosh-framebuffer-support-tidy.patch vt-binding-add-sysfs-control-to-the-vt-layer-fix.patch lib-add-idr_replace-tidy.patch genirq-rename-desc-handler-to-desc-chip-power-fix.patch genirq-rename-desc-handler-to-desc-chip-ia64-fix.patch genirq-rename-desc-handler-to-desc-chip-ia64-fix-2.patch genirq-rename-desc-handler-to-desc-chip-terminate_irqs-fix.patch genirq-ia64-build-fix.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html