[Devel] [PATCH VZ9] fs/ext4: bug in swapext ioctl

Alexey Kuznetsov kuznet at virtuozzo.com
Thu Feb 20 19:53:24 MSK 2025


Stupid and very dangerous mistake. Plain luck it did not result
in corruptions, was exposed as failure to convert csd journal
from old to new format.

Affects: #VSTOR-100586

Signed-off-by: Alexey Kuznetsov <kuznet at virtuozzo.com>
---
 fs/ext4/move_extent.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c
index aa9b632..9210fbd 100644
--- a/fs/ext4/move_extent.c
+++ b/fs/ext4/move_extent.c
@@ -941,7 +941,7 @@ static unsigned int count_credits(struct inode *inode, ext4_lblk_t start, ext4_l
 			goto out;
 		}
 		if (cur_blk < d_start) {
-			cur_len -= cur_blk - d_start;
+			cur_len -= d_start - cur_blk;
 			cur_blk = d_start;
 		}
 		if (cur_blk + cur_len > d_end)
-- 
1.8.3.1



More information about the Devel mailing list