summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2004-04-11 23:11:21 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-04-11 23:11:21 -0700
commit1d7d3304e9845f61cab6b6091e8952f6fb05009a (patch)
tree7d79e788d4e7c5e7dbbcf4af7b1ca70bc2526c0b /include
parent40c8348ec03fa2c525e13ca6ee54279735563ee4 (diff)
[PATCH] stop using the address_space dirty_pages list
Move everything over to walking the radix tree via the PAGECACHE_TAG_DIRTY tag. Remove address_space.dirty_pages.
Diffstat (limited to 'include')
-rw-r--r--include/linux/fs.h3
-rw-r--r--include/linux/pagemap.h7
-rw-r--r--include/linux/pagevec.h7
3 files changed, 11 insertions, 6 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 857e797b0ad2..f8954889d336 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -324,7 +324,6 @@ struct address_space {
struct radix_tree_root page_tree; /* radix tree of all pages */
spinlock_t tree_lock; /* and spinlock protecting it */
struct list_head clean_pages; /* list of clean pages */
- struct list_head dirty_pages; /* list of dirty pages */
struct list_head locked_pages; /* list of locked pages */
struct list_head io_pages; /* being prepared for I/O */
unsigned long nrpages; /* number of total pages */
@@ -371,6 +370,8 @@ struct block_device {
#define PAGECACHE_TAG_DIRTY 0
#define PAGECACHE_TAG_WRITEBACK 1
+int mapping_tagged(struct address_space *mapping, int tag);
+
/*
* Use sequence counter to get consistent i_size on 32-bit processors.
*/
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index e552cb04a0ed..70d07dbfcd02 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -69,9 +69,10 @@ extern struct page * find_trylock_page(struct address_space *mapping,
unsigned long index);
extern struct page * find_or_create_page(struct address_space *mapping,
unsigned long index, unsigned int gfp_mask);
-extern unsigned int find_get_pages(struct address_space *mapping,
- pgoff_t start, unsigned int nr_pages,
- struct page **pages);
+unsigned find_get_pages(struct address_space *mapping, pgoff_t start,
+ unsigned int nr_pages, struct page **pages);
+unsigned find_get_pages_tag(struct address_space *mapping, pgoff_t *index,
+ int tag, unsigned int nr_pages, struct page **pages);
/*
* Returns locked page at given index in given cache, creating it if needed.
diff --git a/include/linux/pagevec.h b/include/linux/pagevec.h
index 2a332eed3d82..e6e43ce82b55 100644
--- a/include/linux/pagevec.h
+++ b/include/linux/pagevec.h
@@ -22,8 +22,11 @@ void __pagevec_free(struct pagevec *pvec);
void __pagevec_lru_add(struct pagevec *pvec);
void __pagevec_lru_add_active(struct pagevec *pvec);
void pagevec_strip(struct pagevec *pvec);
-unsigned int pagevec_lookup(struct pagevec *pvec, struct address_space *mapping,
- pgoff_t start, unsigned int nr_pages);
+unsigned pagevec_lookup(struct pagevec *pvec, struct address_space *mapping,
+ pgoff_t start, unsigned nr_pages);
+unsigned pagevec_lookup_tag(struct pagevec *pvec,
+ struct address_space *mapping, pgoff_t *index, int tag,
+ unsigned nr_pages);
static inline void pagevec_init(struct pagevec *pvec, int cold)
{