diff options
author | Theodore Ts'o <tytso@mit.edu> | 2022-01-05 23:59:56 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2022-01-10 13:25:56 -0500 |
commit | 6eeaf88fd586f05aaf1d48cb3a139d2a5c6eb055 (patch) | |
tree | 8fd1d000e7f7a9388379c7cc36c1b4dd2565a300 /fs/cifs/unc.c | |
parent | a2e3965df40af2f48ee6c97ed573adb91ced5dac (diff) | |
download | linux-6eeaf88fd586f05aaf1d48cb3a139d2a5c6eb055.tar.bz2 |
ext4: don't use the orphan list when migrating an inode
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
Diffstat (limited to 'fs/cifs/unc.c')
0 files changed, 0 insertions, 0 deletions