summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJody McIntyre <scjody@modernduck.com>2005-02-09 08:19:10 -0500
committerJody McIntyre <scjody@modernduck.com>2005-02-09 08:19:10 -0500
commit23750010bfa81de0867ddd4bd4bd7c9b2d27fe05 (patch)
tree0b0b2ff8aab00bf3dcb5753a2e7a1217194c1312 /include
parentc5ff533d2618c3c26242551e2a9957763f126e2c (diff)
parent245f9eba891010ed627fec5b83d0f7b575e3d5ce (diff)
Merge modernduck.com:/usr/src/bk/linux-2.5
into modernduck.com:/usr/src/bk/1394-2.6
Diffstat (limited to 'include')
-rw-r--r--include/asm-ia64/page.h3
-rw-r--r--include/asm-sparc64/compat.h2
-rw-r--r--include/asm-x86_64/system.h2
-rw-r--r--include/linux/highmem.h4
-rw-r--r--include/linux/mm.h4
-rw-r--r--include/linux/raid/raid5.h2
6 files changed, 13 insertions, 4 deletions
diff --git a/include/asm-ia64/page.h b/include/asm-ia64/page.h
index 1991944ddfd9..24770c011fd8 100644
--- a/include/asm-ia64/page.h
+++ b/include/asm-ia64/page.h
@@ -79,7 +79,8 @@ do { \
#define alloc_zeroed_user_highpage(vma, vaddr) \
({ \
struct page *page = alloc_page_vma(GFP_HIGHUSER | __GFP_ZERO, vma, vaddr); \
- flush_dcache_page(page); \
+ if (page) \
+ flush_dcache_page(page); \
page; \
})
diff --git a/include/asm-sparc64/compat.h b/include/asm-sparc64/compat.h
index e26d7d85c55a..da9c81a6af5a 100644
--- a/include/asm-sparc64/compat.h
+++ b/include/asm-sparc64/compat.h
@@ -133,6 +133,8 @@ static __inline__ void __user *compat_alloc_user_space(long len)
if (!(test_thread_flag(TIF_32BIT)))
usp += STACK_BIAS;
+ else
+ usp &= 0xffffffffUL;
return (void __user *) (usp - len);
}
diff --git a/include/asm-x86_64/system.h b/include/asm-x86_64/system.h
index 05acc62c2b61..c1710933828f 100644
--- a/include/asm-x86_64/system.h
+++ b/include/asm-x86_64/system.h
@@ -35,7 +35,7 @@
"thread_return:\n\t" \
"movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \
"movq %P[thread_info](%%rsi),%%r8\n\t" \
- "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
+ LOCK "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
"movq %%rax,%%rdi\n\t" \
"jc ret_from_fork\n\t" \
RESTORE_CONTEXT \
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 11d84c93af71..2a7e6c65c882 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -48,7 +48,9 @@ alloc_zeroed_user_highpage(struct vm_area_struct *vma, unsigned long vaddr)
{
struct page *page = alloc_page_vma(GFP_HIGHUSER, vma, vaddr);
- clear_user_highpage(page, vaddr);
+ if (page)
+ clear_user_highpage(page, vaddr);
+
return page;
}
#endif
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 10d011f464d6..3a8c47c5dc9c 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -756,7 +756,9 @@ extern unsigned long page_unuse(struct page *);
extern void truncate_inode_pages(struct address_space *, loff_t);
/* generic vm_area_ops exported for stackable file systems */
-struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *);
+extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *);
+extern int filemap_populate(struct vm_area_struct *, unsigned long,
+ unsigned long, pgprot_t, unsigned long, int);
/* mm/page-writeback.c */
int write_one_page(struct page *page, int wait);
diff --git a/include/linux/raid/raid5.h b/include/linux/raid/raid5.h
index baf88d2ad986..d63ddcb4afad 100644
--- a/include/linux/raid/raid5.h
+++ b/include/linux/raid/raid5.h
@@ -152,6 +152,7 @@ struct stripe_head {
#define R5_Wantread 4 /* want to schedule a read */
#define R5_Wantwrite 5
#define R5_Syncio 6 /* this io need to be accounted as resync io */
+#define R5_Overlap 7 /* There is a pending overlapping request on this block */
/*
* Write method
@@ -219,6 +220,7 @@ struct raid5_private_data {
atomic_t active_stripes;
struct list_head inactive_list;
wait_queue_head_t wait_for_stripe;
+ wait_queue_head_t wait_for_overlap;
int inactive_blocked; /* release of inactive stripes blocked,
* waiting for 25% to be free
*/