diff options
| author | Andrew Morton <akpm@zip.com.au> | 2002-05-27 05:12:50 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-05-27 05:12:50 -0700 |
| commit | ab9e89416c2a7ade1f1ef56b31935aefc82412cc (patch) | |
| tree | cee04f356d01a14240bb75816b1550ce0c65d566 /include | |
| parent | bc67de559fb1ceda7a34ad67f03b643399dfa284 (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.h | 1 | ||||
| -rw-r--r-- | include/linux/mpage.h | 3 |
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); + |
