Patchwork [3.5.y.z,extended,stable] Patch "ext4: lock i_mutex when truncating orphan inodes" has been added to staging queue

mail settings
Submitter Luis Henriques
Date June 17, 2013, 2:46 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/251874/
State New
Headers show


Luis Henriques - June 17, 2013, 2:46 p.m.
This is a note to let you know that I have just added a patch titled

    ext4: lock i_mutex when truncating orphan inodes

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 5c09ba64a744a2c8d66c9f3ad42d1ac3f8428747 Mon Sep 17 00:00:00 2001
From: Theodore Ts'o <>
Date: Thu, 27 Dec 2012 01:42:48 -0500
Subject: [PATCH] ext4: lock i_mutex when truncating orphan inodes

commit 721e3eba21e43532e438652dd8f1fcdfce3187e7 upstream.

Commit c278531d39 added a warning when ext4_flush_unwritten_io() is
called without i_mutex being taken.  It had previously not been taken
during orphan cleanup since races weren't possible at that point in
the mount process, but as a result of this c278531d39, we will now see
a kernel WARN_ON in this case.  Take the i_mutex in
ext4_orphan_cleanup() to suppress this warning.

Reported-by: Alexander Beregalov <>
Signed-off-by: "Theodore Ts'o" <>
Reviewed-by: Zheng Liu <>
Signed-off-by: Luis Henriques <>
 fs/ext4/super.c | 2 ++
 1 file changed, 2 insertions(+)



diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index df4b8db..89abdd7 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -2208,7 +2208,9 @@  static void ext4_orphan_cleanup(struct super_block *sb,
 				__func__, inode->i_ino, inode->i_size);
 			jbd_debug(2, "truncating inode %lu to %lld bytes\n",
 				  inode->i_ino, inode->i_size);
+			mutex_lock(&inode->i_mutex);
+			mutex_unlock(&inode->i_mutex);
 		} else {
 			ext4_msg(sb, KERN_DEBUG,