--- 25-akpm/fs/buffer.c | 3 ++- 25-akpm/include/linux/list.h | 3 ++- 25-akpm/kernel/sched.c | 4 +++- 25-akpm/mm/filemap.c | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff -puN include/linux/list.h~wake-one-pg_locked-bh_lock-semantics-tweaks include/linux/list.h --- 25/include/linux/list.h~wake-one-pg_locked-bh_lock-semantics-tweaks 2004-05-04 23:59:03.868698504 -0700 +++ 25-akpm/include/linux/list.h 2004-05-04 23:59:28.126010832 -0700 @@ -413,7 +413,8 @@ static inline void list_splice_init(stru pos = n, n = list_entry(n->member.next, typeof(*n), member)) /** - * list_for_each_entry_reverse_safe - iterate over list of given type safe against removal of list entry backward + * list_for_each_entry_reverse_safe - iterate over list of given type safe + * against removal of list entry backward * @pos: the type * to use as a loop counter. * @n: another type * to use as temporary storage * @head: the head for your list. diff -puN kernel/sched.c~wake-one-pg_locked-bh_lock-semantics-tweaks kernel/sched.c --- 25/kernel/sched.c~wake-one-pg_locked-bh_lock-semantics-tweaks 2004-05-04 23:59:39.541275448 -0700 +++ 25-akpm/kernel/sched.c 2004-05-04 23:59:54.298032080 -0700 @@ -2525,8 +2525,10 @@ void fastcall wake_up_filtered(wait_queu struct filtered_wait_queue *wait, *save; spin_lock_irqsave(&q->lock, flags); - list_for_each_entry_reverse_safe(wait, save, &q->task_list, wait.task_list) { + list_for_each_entry_reverse_safe(wait, save, &q->task_list, + wait.task_list) { int exclusive = wait->wait.flags & WQ_FLAG_EXCLUSIVE; + if (wait->key != key) continue; else if (!wait->wait.func(&wait->wait, mode, 0)) diff -puN fs/buffer.c~wake-one-pg_locked-bh_lock-semantics-tweaks fs/buffer.c --- 25/fs/buffer.c~wake-one-pg_locked-bh_lock-semantics-tweaks 2004-05-05 00:00:28.525828664 -0700 +++ 25-akpm/fs/buffer.c 2004-05-05 00:00:33.283105448 -0700 @@ -94,7 +94,8 @@ void fastcall __lock_buffer(struct buffe DEFINE_FILTERED_WAIT(wait, bh); do { - prepare_to_wait_exclusive(wqh, &wait.wait, TASK_UNINTERRUPTIBLE); + prepare_to_wait_exclusive(wqh, &wait.wait, + TASK_UNINTERRUPTIBLE); if (buffer_locked(bh)) { sync_buffer(bh); io_schedule(); diff -puN mm/filemap.c~wake-one-pg_locked-bh_lock-semantics-tweaks mm/filemap.c --- 25/mm/filemap.c~wake-one-pg_locked-bh_lock-semantics-tweaks 2004-05-05 00:00:55.943660520 -0700 +++ 25-akpm/mm/filemap.c 2004-05-05 00:02:20.384823512 -0700 @@ -304,7 +304,7 @@ static wait_queue_head_t *page_waitqueue #define PAGE_KEY_SHIFT (BITS_PER_LONG - (BITS_PER_LONG == 32 ? 5 : 6)) static void *page_key(struct page *page, unsigned long bit) { - return (void *)(page_to_pfn(page) | bit << PAGE_KEY_SHIFT); + return (void *)(page_to_pfn(page) | (bit << PAGE_KEY_SHIFT)); } void fastcall wait_on_page_bit(struct page *page, int bit_nr) _