diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 70ffe28e4..37bc9a4a1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -204,7 +204,7 @@ typedef struct page { */ #define UnlockPage(page) do { \ smp_mb__before_clear_bit(); \ - clear_bit(PG_locked, &(page)->flags); \ + if (!test_and_clear_bit(PG_locked, &(page)->flags)) BUG(); \ smp_mb__after_clear_bit(); \ if (waitqueue_active(&page->wait)) \ wake_up(&page->wait); \ @@ -454,11 +454,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 */ -extern int filemap_swapout(struct page * page, struct file *file); -extern int filemap_sync(struct vm_area_struct * vma, unsigned long address, - size_t size, unsigned int flags); -extern struct page *filemap_nopage(struct vm_area_struct * area, - unsigned long address, int no_share); +extern int filemap_swapout(struct page *, struct file *); +extern int filemap_sync(struct vm_area_struct *, unsigned long, size_t, unsigned int); +extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int); /* * GFP bitmasks.. |