Skip to content

Commit

Permalink
Fix incomplete file copy due to copy_data misuse
Browse files Browse the repository at this point in the history
The copy_data function takes a start and an end parameter as the range
of bytes to copy, but it was called with a start and a length parameter.
This resulted in incomplete file copies. Fix it by passing the end of
the range instead of the length.

Signed-off-by: Ariel Miculas <[email protected]>
Signed-off-by: Kent Overstreet <[email protected]>
  • Loading branch information
ariel-miculas authored and Kent Overstreet committed Jun 16, 2024
1 parent ed675b8 commit 3a4a096
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions c_src/posix_to_bcachefs.c
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ static void copy_file(struct bch_fs *c, struct bch_inode_unpacked *dst,
FIEMAP_EXTENT_NOT_ALIGNED|
FIEMAP_EXTENT_DATA_INLINE))) {
copy_data(c, dst, src_fd, e.fe_logical,
min(src_size - e.fe_logical,
e.fe_logical + min(src_size - e.fe_logical,
e.fe_length));
continue;
}
Expand All @@ -299,7 +299,7 @@ static void copy_file(struct bch_fs *c, struct bch_inode_unpacked *dst,
*/
if (e.fe_physical < 1 << 20) {
copy_data(c, dst, src_fd, e.fe_logical,
min(src_size - e.fe_logical,
e.fe_logical + min(src_size - e.fe_logical,
e.fe_length));
continue;
}
Expand Down

0 comments on commit 3a4a096

Please sign in to comment.