X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fpagemap.h;h=4da205f3cb2673b1616386d48bc2b5cec9117b73;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=e5acf35963a2ff7414f36ae61bfb2fa7687382ff;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index e5acf3596..4da205f3c 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include @@ -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, @@ -220,13 +224,13 @@ static inline void fault_in_pages_readable(const char __user *uaddr, int size) volatile char c; int ret; - ret = __get_user(c, (char *)uaddr); + ret = __get_user(c, uaddr); if (ret == 0) { const char __user *end = uaddr + size - 1; if (((unsigned long)uaddr & PAGE_MASK) != ((unsigned long)end & PAGE_MASK)) - __get_user(c, (char *)end); + __get_user(c, end); } }