Theodore Ts'o 0ca7ec6db2 ext4: don't use the orphan list when migrating an inode
commit 6eeaf88fd586f05aaf1d48cb3a139d2a5c6eb055 upstream.

We probably want to remove the indirect block to extents migration
feature after a deprecation window, but until then, let's fix a
potential data loss problem caused by the fact that we put the
tmp_inode on the orphan list.  In the unlikely case where we crash and
do a journal recovery, the data blocks belonging to the inode being
migrated are also represented in the tmp_inode on the orphan list ---
and so its data blocks will get marked unallocated, and available for
reuse.

Instead, stop putting the tmp_inode on the oprhan list.  So in the
case where we crash while migrating the inode, we'll leak an inode,
which is not a disaster.  It will be easily fixed the next time we run
fsck, and it's better than potentially having blocks getting claimed
by two different files, and losing data as a result.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-27 10:54:28 +01:00
..
2020-10-16 11:11:22 -07:00
2021-09-18 13:40:15 +02:00
2021-11-18 14:04:15 +01:00
2021-12-14 11:32:39 +01:00
2021-07-14 16:56:12 +02:00
2020-09-10 14:03:31 -07:00
2021-12-22 09:30:57 +01:00
2020-08-04 21:02:38 -04:00
2021-11-26 10:39:22 +01:00
2020-07-31 08:16:01 +02:00
2020-10-23 11:33:41 -07:00
2020-10-23 11:33:41 -07:00
2021-12-14 11:32:40 +01:00
2020-10-24 12:40:18 -07:00
2020-08-27 16:06:47 -04:00
2020-07-31 08:16:01 +02:00