From: Greg Kroah-Hartman Date: Mon, 27 May 2019 11:26:55 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v5.1.6~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=43e11f77d52263733dcb2af743d2bcff1cc71c5f;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: ext4-do-not-delete-unlinked-inode-from-orphan-list-on-failed-truncate.patch --- diff --git a/queue-4.4/ext4-do-not-delete-unlinked-inode-from-orphan-list-on-failed-truncate.patch b/queue-4.4/ext4-do-not-delete-unlinked-inode-from-orphan-list-on-failed-truncate.patch new file mode 100644 index 0000000000..4a3a6248d5 --- /dev/null +++ b/queue-4.4/ext4-do-not-delete-unlinked-inode-from-orphan-list-on-failed-truncate.patch @@ -0,0 +1,37 @@ +From ee0ed02ca93ef1ecf8963ad96638795d55af2c14 Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Thu, 23 May 2019 23:35:28 -0400 +Subject: ext4: do not delete unlinked inode from orphan list on failed truncate + +From: Jan Kara + +commit ee0ed02ca93ef1ecf8963ad96638795d55af2c14 upstream. + +It is possible that unlinked inode enters ext4_setattr() (e.g. if +somebody calls ftruncate(2) on unlinked but still open file). In such +case we should not delete the inode from the orphan list if truncate +fails. Note that this is mostly a theoretical concern as filesystem is +corrupted if we reach this path anyway but let's be consistent in our +orphan handling. + +Reviewed-by: Ira Weiny +Signed-off-by: Jan Kara +Signed-off-by: Theodore Ts'o +Cc: stable@kernel.org +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ext4/inode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/fs/ext4/inode.c ++++ b/fs/ext4/inode.c +@@ -4944,7 +4944,7 @@ int ext4_setattr(struct dentry *dentry, + up_write(&EXT4_I(inode)->i_data_sem); + ext4_journal_stop(handle); + if (error) { +- if (orphan) ++ if (orphan && inode->i_nlink) + ext4_orphan_del(NULL, inode); + goto err_out; + } diff --git a/queue-4.4/series b/queue-4.4/series index 3548f5e26d..c4161be084 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -74,3 +74,4 @@ revert-don-t-jump-to-compute_result-state-from-check_result-state.patch md-raid-raid5-preserve-the-writeback-action-after-the-parity-check.patch btrfs-honour-fitrim-range-constraints-during-free-space-trim.patch fbdev-sm712fb-fix-memory-frequency-by-avoiding-a-switch-case-fallthrough.patch +ext4-do-not-delete-unlinked-inode-from-orphan-list-on-failed-truncate.patch