ARM: tegra: add sysfs support for tegra cpuquiet driver
[linux-2.6.git] / include / linux / pagemap.h
index c119506..cfaaa69 100644 (file)
@@ -134,7 +134,7 @@ static inline int page_cache_get_speculative(struct page *page)
        VM_BUG_ON(in_interrupt());
 
 #if !defined(CONFIG_SMP) && defined(CONFIG_TREE_RCU)
-# ifdef CONFIG_PREEMPT
+# ifdef CONFIG_PREEMPT_COUNT
        VM_BUG_ON(!in_atomic());
 # endif
        /*
@@ -172,7 +172,7 @@ static inline int page_cache_add_speculative(struct page *page, int count)
        VM_BUG_ON(in_interrupt());
 
 #if !defined(CONFIG_SMP) && defined(CONFIG_TREE_RCU)
-# ifdef CONFIG_PREEMPT
+# ifdef CONFIG_PREEMPT_COUNT
        VM_BUG_ON(!in_atomic());
 # endif
        VM_BUG_ON(page_count(page) == 0);
@@ -219,6 +219,12 @@ static inline struct page *page_cache_alloc_cold(struct address_space *x)
        return __page_cache_alloc(mapping_gfp_mask(x)|__GFP_COLD);
 }
 
+static inline struct page *page_cache_alloc_readahead(struct address_space *x)
+{
+       return __page_cache_alloc(mapping_gfp_mask(x) |
+                                 __GFP_COLD | __GFP_NORETRY | __GFP_NOWARN);
+}
+
 typedef int filler_t(void *, struct page *);
 
 extern struct page * find_get_page(struct address_space *mapping,
@@ -249,26 +255,24 @@ static inline struct page *grab_cache_page(struct address_space *mapping,
 extern struct page * grab_cache_page_nowait(struct address_space *mapping,
                                pgoff_t index);
 extern struct page * read_cache_page_async(struct address_space *mapping,
-                               pgoff_t index, filler_t *filler,
-                               void *data);
+                               pgoff_t index, filler_t *filler, void *data);
 extern struct page * read_cache_page(struct address_space *mapping,
-                               pgoff_t index, filler_t *filler,
-                               void *data);
+                               pgoff_t index, filler_t *filler, void *data);
 extern struct page * read_cache_page_gfp(struct address_space *mapping,
                                pgoff_t index, gfp_t gfp_mask);
 extern int read_cache_pages(struct address_space *mapping,
                struct list_head *pages, filler_t *filler, void *data);
 
 static inline struct page *read_mapping_page_async(
-                                               struct address_space *mapping,
-                                                    pgoff_t index, void *data)
+                               struct address_space *mapping,
+                               pgoff_t index, void *data)
 {
        filler_t *filler = (filler_t *)mapping->a_ops->readpage;
        return read_cache_page_async(mapping, index, filler, data);
 }
 
 static inline struct page *read_mapping_page(struct address_space *mapping,
-                                            pgoff_t index, void *data)
+                               pgoff_t index, void *data)
 {
        filler_t *filler = (filler_t *)mapping->a_ops->readpage;
        return read_cache_page(mapping, index, filler, data);
@@ -357,6 +361,15 @@ static inline int lock_page_or_retry(struct page *page, struct mm_struct *mm,
  */
 extern void wait_on_page_bit(struct page *page, int bit_nr);
 
+extern int wait_on_page_bit_killable(struct page *page, int bit_nr);
+
+static inline int wait_on_page_locked_killable(struct page *page)
+{
+       if (PageLocked(page))
+               return wait_on_page_bit_killable(page, PG_locked);
+       return 0;
+}
+
 /* 
  * Wait for a page to be unlocked.
  *