lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 348/452] f2fs: dont need inode lock for system hidden quota
    Date
    From: Jaegeuk Kim <jaegeuk@kernel.org>

    commit 6213f5d4d23c50d393a31dc8e351e63a1fd10dbe upstream.

    Let's avoid false-alarmed lockdep warning.

    [ 58.914674] [T1501146] -> #2 (&sb->s_type->i_mutex_key#20){+.+.}-{3:3}:
    [ 58.915975] [T1501146] system_server: down_write+0x7c/0xe0
    [ 58.916738] [T1501146] system_server: f2fs_quota_sync+0x60/0x1a8
    [ 58.917563] [T1501146] system_server: block_operations+0x16c/0x43c
    [ 58.918410] [T1501146] system_server: f2fs_write_checkpoint+0x114/0x318
    [ 58.919312] [T1501146] system_server: f2fs_issue_checkpoint+0x178/0x21c
    [ 58.920214] [T1501146] system_server: f2fs_sync_fs+0x48/0x6c
    [ 58.920999] [T1501146] system_server: f2fs_do_sync_file+0x334/0x738
    [ 58.921862] [T1501146] system_server: f2fs_sync_file+0x30/0x48
    [ 58.922667] [T1501146] system_server: __arm64_sys_fsync+0x84/0xf8
    [ 58.923506] [T1501146] system_server: el0_svc_common.llvm.12821150825140585682+0xd8/0x20c
    [ 58.924604] [T1501146] system_server: do_el0_svc+0x28/0xa0
    [ 58.925366] [T1501146] system_server: el0_svc+0x24/0x38
    [ 58.926094] [T1501146] system_server: el0_sync_handler+0x88/0xec
    [ 58.926920] [T1501146] system_server: el0_sync+0x1b4/0x1c0

    [ 58.927681] [T1501146] -> #1 (&sbi->cp_global_sem){+.+.}-{3:3}:
    [ 58.928889] [T1501146] system_server: down_write+0x7c/0xe0
    [ 58.929650] [T1501146] system_server: f2fs_write_checkpoint+0xbc/0x318
    [ 58.930541] [T1501146] system_server: f2fs_issue_checkpoint+0x178/0x21c
    [ 58.931443] [T1501146] system_server: f2fs_sync_fs+0x48/0x6c
    [ 58.932226] [T1501146] system_server: sync_filesystem+0xac/0x130
    [ 58.933053] [T1501146] system_server: generic_shutdown_super+0x38/0x150
    [ 58.933958] [T1501146] system_server: kill_block_super+0x24/0x58
    [ 58.934791] [T1501146] system_server: kill_f2fs_super+0xcc/0x124
    [ 58.935618] [T1501146] system_server: deactivate_locked_super+0x90/0x120
    [ 58.936529] [T1501146] system_server: deactivate_super+0x74/0xac
    [ 58.937356] [T1501146] system_server: cleanup_mnt+0x128/0x168
    [ 58.938150] [T1501146] system_server: __cleanup_mnt+0x18/0x28
    [ 58.938944] [T1501146] system_server: task_work_run+0xb8/0x14c
    [ 58.939749] [T1501146] system_server: do_notify_resume+0x114/0x1e8
    [ 58.940595] [T1501146] system_server: work_pending+0xc/0x5f0

    [ 58.941375] [T1501146] -> #0 (&sbi->gc_lock){+.+.}-{3:3}:
    [ 58.942519] [T1501146] system_server: __lock_acquire+0x1270/0x2868
    [ 58.943366] [T1501146] system_server: lock_acquire+0x114/0x294
    [ 58.944169] [T1501146] system_server: down_write+0x7c/0xe0
    [ 58.944930] [T1501146] system_server: f2fs_issue_checkpoint+0x13c/0x21c
    [ 58.945831] [T1501146] system_server: f2fs_sync_fs+0x48/0x6c
    [ 58.946614] [T1501146] system_server: f2fs_do_sync_file+0x334/0x738
    [ 58.947472] [T1501146] system_server: f2fs_ioc_commit_atomic_write+0xc8/0x14c
    [ 58.948439] [T1501146] system_server: __f2fs_ioctl+0x674/0x154c
    [ 58.949253] [T1501146] system_server: f2fs_ioctl+0x54/0x88
    [ 58.950018] [T1501146] system_server: __arm64_sys_ioctl+0xa8/0x110
    [ 58.950865] [T1501146] system_server: el0_svc_common.llvm.12821150825140585682+0xd8/0x20c
    [ 58.951965] [T1501146] system_server: do_el0_svc+0x28/0xa0
    [ 58.952727] [T1501146] system_server: el0_svc+0x24/0x38
    [ 58.953454] [T1501146] system_server: el0_sync_handler+0x88/0xec
    [ 58.954279] [T1501146] system_server: el0_sync+0x1b4/0x1c0

    Cc: stable@vger.kernel.org
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    fs/f2fs/super.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/fs/f2fs/super.c
    +++ b/fs/f2fs/super.c
    @@ -2292,7 +2292,8 @@ int f2fs_quota_sync(struct super_block *
    if (!sb_has_quota_active(sb, cnt))
    continue;

    - inode_lock(dqopt->files[cnt]);
    + if (!f2fs_sb_has_quota_ino(sbi))
    + inode_lock(dqopt->files[cnt]);

    /*
    * do_quotactl
    @@ -2311,7 +2312,8 @@ int f2fs_quota_sync(struct super_block *
    up_read(&sbi->quota_sem);
    f2fs_unlock_op(sbi);

    - inode_unlock(dqopt->files[cnt]);
    + if (!f2fs_sb_has_quota_ino(sbi))
    + inode_unlock(dqopt->files[cnt]);

    if (ret)
    break;

    \
     
     \ /
      Last update: 2022-06-07 20:02    [W:4.200 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site