nilfs2: support contiguous lookup of blocks
Although get_block() callback function can return extent of contiguous blocks with bh->b_size, nilfs_get_block() function did not support this feature. This adds contiguous lookup feature to the block mapping codes of nilfs, and allows the nilfs_get_blocks() function to return the extent information by applying the feature. Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
This commit is contained in:
@@ -64,6 +64,8 @@ struct nilfs_bmap_stats {
|
||||
*/
|
||||
struct nilfs_bmap_operations {
|
||||
int (*bop_lookup)(const struct nilfs_bmap *, __u64, int, __u64 *);
|
||||
int (*bop_lookup_contig)(const struct nilfs_bmap *, __u64, __u64 *,
|
||||
unsigned);
|
||||
int (*bop_insert)(struct nilfs_bmap *, __u64, __u64);
|
||||
int (*bop_delete)(struct nilfs_bmap *, __u64);
|
||||
void (*bop_clear)(struct nilfs_bmap *);
|
||||
@@ -140,6 +142,7 @@ int nilfs_bmap_test_and_clear_dirty(struct nilfs_bmap *);
|
||||
int nilfs_bmap_read(struct nilfs_bmap *, struct nilfs_inode *);
|
||||
void nilfs_bmap_write(struct nilfs_bmap *, struct nilfs_inode *);
|
||||
int nilfs_bmap_lookup(struct nilfs_bmap *, unsigned long, unsigned long *);
|
||||
int nilfs_bmap_lookup_contig(struct nilfs_bmap *, __u64, __u64 *, unsigned);
|
||||
int nilfs_bmap_insert(struct nilfs_bmap *, unsigned long, unsigned long);
|
||||
int nilfs_bmap_delete(struct nilfs_bmap *, unsigned long);
|
||||
int nilfs_bmap_last_key(struct nilfs_bmap *, unsigned long *);
|
||||
@@ -160,6 +163,7 @@ void nilfs_bmap_commit_gcdat(struct nilfs_bmap *, struct nilfs_bmap *);
|
||||
/*
|
||||
* Internal use only
|
||||
*/
|
||||
struct inode *nilfs_bmap_get_dat(const struct nilfs_bmap *);
|
||||
int nilfs_bmap_prepare_alloc_v(struct nilfs_bmap *,
|
||||
union nilfs_bmap_ptr_req *);
|
||||
void nilfs_bmap_commit_alloc_v(struct nilfs_bmap *,
|
||||
|
Reference in New Issue
Block a user