ext4: Fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
PATCH 3/4 ext4: Fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
ext4: Fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
From: Akira Fujita <[email protected]>
If kernel configuration related to lock debugging is enabled, we get possible recursive locking warning. Therefore, use down_write_nested() to guarantee
the lock order explicitly.
This problem has been reported by Brian Rogers before.
http://marc.info/?l=linux-ext4&m=125115356928011&w=1
--- fs/ext4/move_extent.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
fs/ext4/move_extent.c +1 -1
@@ -189,7 +189,7 @@ double_down_write_data_sem(struct inode *orig_inode, struct inode *donor_inode) }down_write (&EXT4_I (first)->i_data_sem); -down_write (&EXT4_I (second)->i_data_sem); +down_write_nested (&EXT4_I (second)->i_data_sem,SINGLE_DEPTH_NESTING ); }/**
Theodore Tso
maintainerQuoted 3 lines · Akira Fujita
ext4: Fix possible recursive locking warning in
EXT4_IOC_MOVE_EXTFrom: Akira Fujita <[email protected]>
Thanks, I've added this patch to the ext4 patch queue, but with the following updated commit description:
ext4: Fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
From: Akira Fujita <[email protected]>
If CONFIG_PROVE_LOCKING is enabled, the double_down_write_data_sem() will trigger a false-positive warning of a recursive lock. Since we take i_data_sem for the two inodes ordered by their inode numbers, this isn't a problem. Use of down_write_nested() will notify the lock dependency checker machinery that there is no problem here.
This problem was reported by Brian Rogers:
http://marc.info/?l=linux-ext4&m=125115356928011&w=1