vserver 1.9.3
[linux-2.6.git] / include / linux / pagemap.h
index 427b696..12f8116 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/fs.h>
 #include <linux/list.h>
 #include <linux/highmem.h>
+#include <linux/compiler.h>
 #include <asm/uaccess.h>
 #include <linux/gfp.h>
 
@@ -136,7 +137,10 @@ static inline void pagecache_acct(int count)
 
 static inline unsigned long get_page_cache_size(void)
 {
-        return atomic_read(&nr_pagecache);
+       int ret = atomic_read(&nr_pagecache);
+       if (unlikely(ret < 0))
+               ret = 0;
+       return ret;
 }
 
 static inline pgoff_t linear_page_index(struct vm_area_struct *vma,
@@ -152,6 +156,7 @@ extern void FASTCALL(unlock_page(struct page *page));
 
 static inline void lock_page(struct page *page)
 {
+       might_sleep();
        if (TestSetPageLocked(page))
                __lock_page(page);
 }