aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/buffer_head.h
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2016-11-04 18:08:11 +0100
committerJens Axboe <axboe@fb.com>2016-11-04 14:34:47 -0600
commit29f3ad7d8380364c86556eedf4eedd3b3d4921dc (patch)
tree927d67ed0be2b321cdf6787e7e11137237419be5 /include/linux/buffer_head.h
parentblk-mq: immediately dispatch big size request (diff)
downloadlinux-dev-29f3ad7d8380364c86556eedf4eedd3b3d4921dc.tar.xz
linux-dev-29f3ad7d8380364c86556eedf4eedd3b3d4921dc.zip
fs: Provide function to unmap metadata for a range of blocks
Provide function equivalent to unmap_underlying_metadata() for a range of blocks. We somewhat optimize the function to use pagevec lookups instead of looking up buffer heads one by one and use page lock to pin buffer heads instead of mapping's private_lock to improve scalability. Signed-off-by: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'include/linux/buffer_head.h')
-rw-r--r--include/linux/buffer_head.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index ebbacd14d450..9c9c73ce7d4f 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -169,6 +169,8 @@ void invalidate_inode_buffers(struct inode *);
int remove_inode_buffers(struct inode *inode);
int sync_mapping_buffers(struct address_space *mapping);
void unmap_underlying_metadata(struct block_device *bdev, sector_t block);
+void clean_bdev_aliases(struct block_device *bdev, sector_t block,
+ sector_t len);
void mark_buffer_async_write(struct buffer_head *bh);
void __wait_on_buffer(struct buffer_head *);