diff options
author | Jan Kara <jack@suse.cz> | 2016-11-04 18:08:11 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-11-04 14:34:47 -0600 |
commit | 29f3ad7d8380364c86556eedf4eedd3b3d4921dc (patch) | |
tree | 927d67ed0be2b321cdf6787e7e11137237419be5 /include/linux/buffer_head.h | |
parent | 600271d9000027c013c01be87cbb90a5a18c5c3f (diff) | |
download | linux-29f3ad7d8380364c86556eedf4eedd3b3d4921dc.tar.gz linux-29f3ad7d8380364c86556eedf4eedd3b3d4921dc.tar.bz2 linux-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.h | 2 |
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 *); |