summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Morton <akpm@zip.com.au>2002-05-27 05:12:50 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-05-27 05:12:50 -0700
commitab9e89416c2a7ade1f1ef56b31935aefc82412cc (patch)
treecee04f356d01a14240bb75816b1550ce0c65d566 /include
parentbc67de559fb1ceda7a34ad67f03b643399dfa284 (diff)
[PATCH] direct-to-BIO writeback
Multipage BIO writeout from the pagecache. It's pretty much the same as multipage reads. It falls back to buffers if things got complex. The write case is a little more complex because it handles pages which have buffers and pages which do not. If the page didn't have buffers this code does not add them.
Diffstat (limited to 'include')
-rw-r--r--include/linux/buffer_head.h1
-rw-r--r--include/linux/mpage.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 7550c3bfb7c0..402a3af8c41e 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -162,6 +162,7 @@ int inode_has_buffers(struct inode *);
void invalidate_inode_buffers(struct inode *);
int fsync_buffers_list(spinlock_t *lock, struct list_head *);
int sync_mapping_buffers(struct address_space *mapping);
+void unmap_underlying_metadata(struct block_device *bdev, sector_t block);
void mark_buffer_async_read(struct buffer_head *bh);
void mark_buffer_async_write(struct buffer_head *bh);
diff --git a/include/linux/mpage.h b/include/linux/mpage.h
index f41ee607416f..068cc6080253 100644
--- a/include/linux/mpage.h
+++ b/include/linux/mpage.h
@@ -13,3 +13,6 @@
int mpage_readpages(struct address_space *mapping, struct list_head *pages,
unsigned nr_pages, get_block_t get_block);
int mpage_readpage(struct page *page, get_block_t get_block);
+int mpage_writeback_mapping(struct address_space *mapping,
+ int *nr_to_write, get_block_t get_block);
+