|
@@ -516,9 +516,13 @@ mext_check_arguments(struct inode *orig_inode,
|
|
|
orig_inode->i_ino, donor_inode->i_ino);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
- if (orig_eof < orig_start + *len - 1)
|
|
|
+ if (orig_eof <= orig_start)
|
|
|
+ *len = 0;
|
|
|
+ else if (orig_eof < orig_start + *len - 1)
|
|
|
*len = orig_eof - orig_start;
|
|
|
- if (donor_eof < donor_start + *len - 1)
|
|
|
+ if (donor_eof <= donor_start)
|
|
|
+ *len = 0;
|
|
|
+ else if (donor_eof < donor_start + *len - 1)
|
|
|
*len = donor_eof - donor_start;
|
|
|
if (!*len) {
|
|
|
ext4_debug("ext4 move extent: len should not be 0 "
|