(2014/08/08 10:47), Filipe Manana wrote: > When cloning a file that consists of an inline extent, we were creating > an extent map that represents a non-existing trailing hole starting at a > file offset that isn't a multiple of the sector size. This happened because > when processing an inline extent we weren't aligning the extent's length to > the sector size, and therefore incorrectly treating the range > [inline_extent_length; sector_size[ as a hole. > > Signed-off-by: Filipe Manana <fdmanana@xxxxxxxx> Reviewed-by: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx> > --- > fs/btrfs/ioctl.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c > index d490abd..6e3a0d1 100644 > --- a/fs/btrfs/ioctl.c > +++ b/fs/btrfs/ioctl.c > @@ -3494,7 +3494,8 @@ process_slot: > btrfs_mark_buffer_dirty(leaf); > btrfs_release_path(path); > > - last_dest_end = new_key.offset + datal; > + last_dest_end = ALIGN(new_key.offset + datal, > + root->sectorsize); > ret = clone_finish_inode_update(trans, inode, > last_dest_end, > destoff, olen); > -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
