f2fs: don't sleep while grabing nat_tree_lock
authorJaegeuk Kim <jaegeuk@kernel.org>
Thu, 22 Jul 2021 17:30:58 +0000 (10:30 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Sun, 25 Jul 2021 15:42:38 +0000 (08:42 -0700)
commit2eeb0dce728a7eac3e4dfe355d98af40d61f7a26
tree1664feb29229d482c2c33001430724b2ec866b69
parent6de8687ccdefed40d617492f4e1b3962eb577b6b
f2fs: don't sleep while grabing nat_tree_lock

This tries to fix priority inversion in the below condition resulting in
long checkpoint delay.

f2fs_get_node_info()
 - nat_tree_lock
  -> sleep to grab journal_rwsem by contention

                                     checkpoint
                                     - waiting for nat_tree_lock

In order to let checkpoint go, let's release nat_tree_lock, if there's a
journal_rwsem contention.

Signed-off-by: Daeho Jeong <daehojeong@google.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/node.c