Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
ll_migrate() takes a lock on the inode in the very beginning, then needs to get data's version via OST which enqueues an extent lock.
in turn ll_file_seek() grab an extent lock first, then wants to lock the inode in vvp_io_lseek_start().
I'd think we should take inode's lock in the beginning of ll_file_seek(), but not an expert in this area.
PID: 468416 TASK: ffff99380683c280 CPU: 3 COMMAND: "lfs" #0 [ffff993802edb9a0] __schedule at ffffffff916f6ab6 /tmp/kernel/kernel/sched/core.c: 3755 #1 [ffff993802edb9f8] schedule at ffffffff916f7050 /tmp/kernel/kernel/sched/core.c: 4602 #2 [ffff993802edba10] schedule_timeout at ffffffff916fd3d0 /tmp/kernel/kernel/time/timer.c: 1836 #3 [ffff993802edbac8] wait_for_common at ffffffff916f7b0c /tmp/kernel/kernel/sched/completion.c: 86 #4 [ffff993802edbb18] mdc_io_data_version_end at ffffffffc0b3e7ba [mdc] /home/lustre/master-test/lustre/mdc/mdc_dev.c: 1340 #5 [ffff993802edbb30] cl_io_end at ffffffffc04897de [obdclass] /home/lustre/master-test/lustre/obdclass/cl_io.c: 529 #6 [ffff993802edbb58] lov_io_end_wrapper at ffffffffc0ad43da [lov] /home/lustre/master-test/lustre/lov/lov_io.c: 1092 #7 [ffff993802edbb70] lov_io_data_version_end at ffffffffc0ad4c32 [lov] /home/lustre/master-test/lustre/lov/lov_io.c: 1137 #8 [ffff993802edbb90] cl_io_end at ffffffffc04897de [obdclass] /home/lustre/master-test/lustre/obdclass/cl_io.c: 529 #9 [ffff993802edbbb8] cl_io_loop at ffffffffc048ded2 [obdclass] /home/lustre/master-test/lustre/obdclass/cl_io.c: 765 #10 [ffff993802edbbf0] ll_ioc_data_version at ffffffffc11c73ba [lustre] /home/lustre/master-test/lustre/llite/file.c: 3236 #11 [ffff993802edbc28] ll_migrate at ffffffffc11d6eff [lustre] /home/lustre/master-test/lustre/llite/file.c: 3269 #12 [ffff993802edbca8] ll_dir_ioctl at ffffffffc11bffb1 [lustre] /home/lustre/master-test/lustre/llite/dir.c: 2295 #13 [ffff993802edbe88] do_vfs_ioctl at ffffffff91273479 /tmp/kernel/fs/ioctl.c: 48 PID: 468197 TASK: ffff99398a360680 CPU: 1 COMMAND: "lfs" #0 [ffff99392f44fd28] __schedule at ffffffff916f6ab6 /tmp/kernel/kernel/sched/core.c: 3755 #1 [ffff99392f44fd80] schedule at ffffffff916f7050 /tmp/kernel/kernel/sched/core.c: 4602 #2 [ffff99392f44fd98] rwsem_down_write_slowpath at ffffffff9112c55a /tmp/kernel/./arch/x86/include/asm/current.h: 15 #3 [ffff99392f44fe28] vvp_io_lseek_start at ffffffffc12286fd [lustre] /home/lustre/linux-4.18.0-477.15.1.el8_8/./arch/x86/include/asm/current.h: 15 #4 [ffff99392f44fe50] cl_io_start at ffffffffc04896d5 [obdclass] /home/lustre/master-test/lustre/obdclass/cl_io.c: 507 #5 [ffff99392f44fe78] cl_io_loop at ffffffffc048dec5 [obdclass] /home/lustre/master-test/lustre/obdclass/cl_io.c: 764 #6 [ffff99392f44feb0] ll_file_seek at ffffffffc11d618d [lustre] /home/lustre/master-test/lustre/llite/file.c: 4729 #7 [ffff99392f44ff08] ksys_lseek at ffffffff9125d48d /tmp/kernel/fs/read_write.c: 300 PID: 7933 TASK: ffff993929c68980 CPU: 3 COMMAND: "mdt00_022" #0 [ffff993971c03b20] __schedule at ffffffff916f6ab6 /tmp/kernel/kernel/sched/core.c: 3755 #1 [ffff993971c03b78] schedule at ffffffff916f7050 /tmp/kernel/kernel/sched/core.c: 4602 #2 [ffff993971c03b90] ldlm_completion_ast at ffffffffc07f8e7c [ptlrpc] /home/lustre/master-test/lustre/ptlrpc/../../lustre/ldlm/ldlm_request.c: 332 #3 [ffff993971c03c08] ldlm_cli_enqueue_local at ffffffffc07f672a [ptlrpc] /home/lustre/master-test/lustre/ptlrpc/../../lustre/ldlm/ldlm_request.c: 536 #4 [ffff993971c03c78] tgt_mdt_data_lock at ffffffffc08441a8 [ptlrpc] /home/lustre/master-test/libcfs/include/libcfs/libcfs_debug.h: 120 #5 [ffff993971c03d20] mdt_data_version_get at ffffffffc0fb7cc9 [mdt] /home/lustre/master-test/lustre/mdt/mdt_io.c: 1649 #6 [ffff993971c03d70] mdt_getattr at ffffffffc0f6ab40 [mdt] /home/lustre/master-test/libcfs/include/libcfs/libcfs_debug.h: 120 #7 [ffff993971c03da0] tgt_request_handle at ffffffffc08495cc [ptlrpc] /home/lustre/master-test/lustre/include/lu_target.h: 654 #8 [ffff993971c03e18] ptlrpc_main at ffffffffc079da91 [ptlrpc] /home/lustre/master-test/lustre/include/lustre_net.h: 2421 #9 [ffff993971c03f10] kthread at ffffffff9110383e /tmp/kernel/kernel/kthread.c: 354