diff options
Diffstat (limited to 'fs/btrfs/extent_io.c')
| -rw-r--r-- | fs/btrfs/extent_io.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 1f87c4d0e7a..9472d3de5e5 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -2285,8 +2285,8 @@ static void end_bio_extent_readpage(struct bio *bio, int err)  				clean_io_failure(start, page);  		}  		if (!uptodate) { -			u64 failed_mirror; -			failed_mirror = (u64)bio->bi_bdev; +			int failed_mirror; +			failed_mirror = (int)(unsigned long)bio->bi_bdev;  			if (tree->ops && tree->ops->readpage_io_failed_hook)  				ret = tree->ops->readpage_io_failed_hook(  						bio, page, start, end, @@ -3366,6 +3366,9 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,  		return -ENOMEM;  	path->leave_spinning = 1; +	start = ALIGN(start, BTRFS_I(inode)->root->sectorsize); +	len = ALIGN(len, BTRFS_I(inode)->root->sectorsize); +  	/*  	 * lookup the last file extent.  We're not using i_size here  	 * because there might be preallocation past i_size @@ -3413,7 +3416,7 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,  	lock_extent_bits(&BTRFS_I(inode)->io_tree, start, start + len, 0,  			 &cached_state, GFP_NOFS); -	em = get_extent_skip_holes(inode, off, last_for_get_extent, +	em = get_extent_skip_holes(inode, start, last_for_get_extent,  				   get_extent);  	if (!em)  		goto out;  |