Created
August 16, 2025 02:52
-
-
Save kzall0c/8d081b36f5f6b23498441007c8a835cd to your computer and use it in GitHub Desktop.
This is WIP for atomic sleep check in linux kernel with cocci check. `make coccicheck COCCI=../../scripts/coccinelle/rt/sleep_in_atomic.cocci MODE=report M=./fs/gfs2 2>&1 | tee gfs2-rt.log`
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
make[1]: Entering directory '/home/ysk/linux/fs/gfs2' | |
Please check for false positives in the output before submitting a patch. | |
When using "patch" mode, carefully review the patch before submitting it. | |
/home/ysk/.local/bin/spatch -D report --no-show-diff --very-quiet --cocci-file ../../scripts/coccinelle/rt/sleep_in_atomic.cocci --no-includes --include-headers --patch /home/ysk/linux --dir . -I /home/ysk/linux/arch/arm64/include -I /home/ysk/linux/arch/arm64/include/generated -I /home/ysk/linux/include -I /home/ysk/linux/include -I /home/ysk/linux/arch/arm64/include/uapi -I /home/ysk/linux/arch/arm64/include/generated/uapi -I /home/ysk/linux/include/uapi -I /home/ysk/linux/include/generated/uapi --include /home/ysk/linux/include/linux/compiler-version.h --include /home/ysk/linux/include/linux/kconfig.h --jobs 6 --chunksize 1 | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}, 'signal_our_withdraw': {'msleep() at ./util.c:229 (is an explicit sleep)'}, 'gfs2_withdraw': {'wait_for_completion() at ./util.c:338 (waits for an event and sleeps)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}, 'gfs2_withdraw': {'wait_for_completion', 'wake_up_bit', 'fs_err', 'strcmp', 'kobject_uevent', 'panic', 'READ_ONCE', 'dump_stack', 'try_cmpxchg', 'unlikely', 'BIT', 'wait_on_bit', 'BUG_ON', 'clear_bit', 'signal_our_withdraw', 'smp_mb__after_atomic'}, 'gfs2_assert_warn_i': {'time_before', 'panic', 'gfs2_tune_get', 'fs_warn', 'dump_stack', 'BUG'}, 'check_journal_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_find_jhead'}, 'signal_our_withdraw': {'fs_warn', 'PTR_ERR', 'gfs2_glock_hold', 'msleep', 'gfs2_holder_reinit', 'GFS2_I', 'wake_up_bit', 'wake_up', 'wait_event_timeout', 'clear_bit', 'gfs2_inode_lookup', 'check_journal_clean', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'set_bit', 'd_mark_dontcache', 'iput', 'wait_on_bit', 'gfs2_glock_put', 'gfs2_glock_dq', 'gfs2_thaw_freeze_initiator', 'mutex_trylock', 'gfs2_ail_drain', 'gfs2_glock_dq_wait', 'gfs2_gl_dq_holders', 'sb_rdonly', 'IS_ERR', 'gfs2_log_is_empty', 'mutex_unlock', 'gfs2_holder_uninit', 'test_bit'}, 'gfs2_consist_inode_i': {'gfs2_lm', 'gfs2_withdraw', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_assert_withdraw_i': {'fs_err', 'dump_stack', 'gfs2_withdrawing_or_withdrawn', 'gfs2_withdraw', 'gfs2_withdraw_delayed'}, 'gfs2_assert_i': {'fs_emerg'}, 'gfs2_freeze_lock_shared': {'gfs2_glock_nq_init', 'fs_err'}, 'gfs2_io_error_bh_i': {'gfs2_withdrawing_or_withdrawn', 'fs_err', 'gfs2_withdraw'}, 'gfs2_lm': {'va_end', 'fs_err', 'test_bit', 'va_start'}, 'gfs2_consist_rgrpd_i': {'sprintf', 'gfs2_withdraw', 'gfs2_lm', 'gfs2_rgrp_dump', 'gfs2_dump_glock'}, 'gfs2_freeze_unlock': {'gfs2_holder_initialized', 'gfs2_glock_dq_uninit'}, 'gfs2_consist_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_io_error_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_meta_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_metatype_check_ii': {'gfs2_withdraw', 'gfs2_lm'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}, 'signal_our_withdraw': {'msleep() at ./util.c:229 (is an explicit sleep)'}, 'gfs2_withdraw': {'wait_for_completion() at ./util.c:338 (waits for an event and sleeps)'}, 'gfs2_recover_func': {'mutex_lock() at ./recovery.c:465 (is a sleeping lock)'}, 'update_statfs_inode': {'spin_lock() at ./recovery.c:321 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_revoke_add': {'kmalloc() with GFP_NOFS at ./recovery.c:72 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}, 'gfs2_withdraw': {'wait_for_completion', 'wake_up_bit', 'fs_err', 'strcmp', 'kobject_uevent', 'panic', 'READ_ONCE', 'dump_stack', 'try_cmpxchg', 'unlikely', 'BIT', 'wait_on_bit', 'BUG_ON', 'clear_bit', 'signal_our_withdraw', 'smp_mb__after_atomic'}, 'gfs2_assert_warn_i': {'time_before', 'panic', 'gfs2_tune_get', 'fs_warn', 'dump_stack', 'BUG'}, 'check_journal_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_find_jhead'}, 'signal_our_withdraw': {'fs_warn', 'PTR_ERR', 'gfs2_glock_hold', 'msleep', 'gfs2_holder_reinit', 'GFS2_I', 'wake_up_bit', 'wake_up', 'wait_event_timeout', 'clear_bit', 'gfs2_inode_lookup', 'check_journal_clean', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'set_bit', 'd_mark_dontcache', 'iput', 'wait_on_bit', 'gfs2_glock_put', 'gfs2_glock_dq', 'gfs2_thaw_freeze_initiator', 'mutex_trylock', 'gfs2_ail_drain', 'gfs2_glock_dq_wait', 'gfs2_gl_dq_holders', 'sb_rdonly', 'IS_ERR', 'gfs2_log_is_empty', 'mutex_unlock', 'gfs2_holder_uninit', 'test_bit'}, 'gfs2_consist_inode_i': {'gfs2_lm', 'gfs2_withdraw', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_assert_withdraw_i': {'fs_err', 'dump_stack', 'gfs2_withdrawing_or_withdrawn', 'gfs2_withdraw', 'gfs2_withdraw_delayed'}, 'gfs2_assert_i': {'fs_emerg'}, 'gfs2_freeze_lock_shared': {'gfs2_glock_nq_init', 'fs_err'}, 'gfs2_io_error_bh_i': {'gfs2_withdrawing_or_withdrawn', 'fs_err', 'gfs2_withdraw'}, 'gfs2_lm': {'va_end', 'fs_err', 'test_bit', 'va_start'}, 'gfs2_consist_rgrpd_i': {'sprintf', 'gfs2_withdraw', 'gfs2_lm', 'gfs2_rgrp_dump', 'gfs2_dump_glock'}, 'gfs2_freeze_unlock': {'gfs2_holder_initialized', 'gfs2_glock_dq_uninit'}, 'gfs2_consist_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_io_error_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_meta_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_metatype_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_recover_journal': {'BUG_ON', 'test_and_set_bit', 'wait_on_bit', 'queue_work'}, 'update_statfs_inode': {'GFS2_I', 'gfs2_statfs_change_out', 'mark_buffer_dirty', 'fs_info', 'gfs2_inode_metasync', 'spin_unlock', 'BUG_ON', 'gfs2_statfs_change_in', 'memset', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'foreach_descriptor': {'GFS2_I', 'lops_scan_elements', 'gfs2_replay_read_block', 'gfs2_replay_incr_blk', 'gfs2_metatype_check', 'gfs2_consist_inode', 'be32_to_cpu', 'brelse', 'GFS2_SB', 'get_log_header', 'gfs2_meta_check'}, 'gfs2_recover_func': {'gfs2_glock_nq_init', 'fs_err', 'down_read', 'fs_warn', 'fs_info', 'recover_local_statfs', 'gfs2_log_pointers_init', 'lops_after_scan', 'clean_journal', 'container_of', 'GFS2_I', 'wake_up_bit', 'gfs2_withdrawing_or_withdrawn', 'clear_bit', 'ktime_ms_delta', 'bdev_read_only', 'gfs2_glock_dq_uninit', 'gfs2_recovery_done', 'ktime_get', 'gfs2_glock_nq_num', 'up_read', 'foreach_descriptor', 'gfs2_find_jhead', 'gfs2_jdesc_check', 'lops_before_scan', 'sb_rdonly', 'mutex_unlock', 'smp_mb__after_atomic', 'test_bit', 'GFS2_SB', 'mutex_lock'}, 'gfs2_replay_read_block': {'GFS2_I', 'gfs2_consist_inode', 'gfs2_meta_ra', 'gfs2_get_extent'}, 'clean_journal': {'gfs2_replay_incr_blk', 'GFS2_SB', 'gfs2_write_log_header'}, 'get_log_header': {'__get_log_header', 'brelse', 'GFS2_SB', 'gfs2_replay_read_block'}, 'recover_local_statfs': {'update_statfs_inode', 'GFS2_SB', 'find_local_statfs_inode'}, '__get_log_header': {'crc32', 'crc32c', 'be64_to_cpu', 'cpu_to_be32', 'be32_to_cpu'}, 'gfs2_log_pointers_init': {'gfs2_replay_incr_blk'}, 'gfs2_revoke_clean': {'kfree', 'list_del', 'list_empty', 'list_first_entry'}, 'gfs2_revoke_add': {'list_add', 'kmalloc'}, 'gfs2_recovery_done': {'kobject_uevent_env', 'sprintf'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}, 'signal_our_withdraw': {'msleep() at ./util.c:229 (is an explicit sleep)'}, 'gfs2_withdraw': {'wait_for_completion() at ./util.c:338 (waits for an event and sleeps)'}, 'gfs2_recover_func': {'mutex_lock() at ./recovery.c:465 (is a sleeping lock)'}, 'update_statfs_inode': {'spin_lock() at ./recovery.c:321 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_revoke_add': {'kmalloc() with GFP_NOFS at ./recovery.c:72 (may sleep in PREEMPT_RT)'}, 'gfs2_getlabel': {'copy_to_user() at ./file.c:319 (may sleep on page fault)'}, 'do_flock': {'spin_lock() at ./file.c:1511 (is a sleeping lock on PREEMPT_RT)', 'msleep() at ./file.c:1522 (is an explicit sleep)', 'mutex_lock() at ./file.c:1494 (is a sleeping lock)'}, 'do_unflock': {'mutex_lock() at ./file.c:1543 (is a sleeping lock)'}, '__flock_holder_uninit': {'spin_lock() at ./file.c:1472 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_file_buffered_write': {'kmalloc() with GFP_NOFS at ./file.c:1032 (may sleep in PREEMPT_RT)'}, 'gfs2_open_common': {'kzalloc() with GFP_NOFS at ./file.c:640 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}, 'gfs2_withdraw': {'wait_for_completion', 'wake_up_bit', 'fs_err', 'strcmp', 'kobject_uevent', 'panic', 'READ_ONCE', 'dump_stack', 'try_cmpxchg', 'unlikely', 'BIT', 'wait_on_bit', 'BUG_ON', 'clear_bit', 'signal_our_withdraw', 'smp_mb__after_atomic'}, 'gfs2_assert_warn_i': {'time_before', 'panic', 'gfs2_tune_get', 'fs_warn', 'dump_stack', 'BUG'}, 'check_journal_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_find_jhead'}, 'signal_our_withdraw': {'fs_warn', 'PTR_ERR', 'gfs2_glock_hold', 'msleep', 'gfs2_holder_reinit', 'GFS2_I', 'wake_up_bit', 'wake_up', 'wait_event_timeout', 'clear_bit', 'gfs2_inode_lookup', 'check_journal_clean', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'set_bit', 'd_mark_dontcache', 'iput', 'wait_on_bit', 'gfs2_glock_put', 'gfs2_glock_dq', 'gfs2_thaw_freeze_initiator', 'mutex_trylock', 'gfs2_ail_drain', 'gfs2_glock_dq_wait', 'gfs2_gl_dq_holders', 'sb_rdonly', 'IS_ERR', 'gfs2_log_is_empty', 'mutex_unlock', 'gfs2_holder_uninit', 'test_bit'}, 'gfs2_consist_inode_i': {'gfs2_lm', 'gfs2_withdraw', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_assert_withdraw_i': {'fs_err', 'dump_stack', 'gfs2_withdrawing_or_withdrawn', 'gfs2_withdraw', 'gfs2_withdraw_delayed'}, 'gfs2_assert_i': {'fs_emerg'}, 'gfs2_freeze_lock_shared': {'gfs2_glock_nq_init', 'fs_err'}, 'gfs2_io_error_bh_i': {'gfs2_withdrawing_or_withdrawn', 'fs_err', 'gfs2_withdraw'}, 'gfs2_lm': {'va_end', 'fs_err', 'test_bit', 'va_start'}, 'gfs2_consist_rgrpd_i': {'sprintf', 'gfs2_withdraw', 'gfs2_lm', 'gfs2_rgrp_dump', 'gfs2_dump_glock'}, 'gfs2_freeze_unlock': {'gfs2_holder_initialized', 'gfs2_glock_dq_uninit'}, 'gfs2_consist_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_io_error_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_meta_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_metatype_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_recover_journal': {'BUG_ON', 'test_and_set_bit', 'wait_on_bit', 'queue_work'}, 'update_statfs_inode': {'GFS2_I', 'gfs2_statfs_change_out', 'mark_buffer_dirty', 'fs_info', 'gfs2_inode_metasync', 'spin_unlock', 'BUG_ON', 'gfs2_statfs_change_in', 'memset', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'foreach_descriptor': {'GFS2_I', 'lops_scan_elements', 'gfs2_replay_read_block', 'gfs2_replay_incr_blk', 'gfs2_metatype_check', 'gfs2_consist_inode', 'be32_to_cpu', 'brelse', 'GFS2_SB', 'get_log_header', 'gfs2_meta_check'}, 'gfs2_recover_func': {'gfs2_glock_nq_init', 'fs_err', 'down_read', 'fs_warn', 'fs_info', 'recover_local_statfs', 'gfs2_log_pointers_init', 'lops_after_scan', 'clean_journal', 'container_of', 'GFS2_I', 'wake_up_bit', 'gfs2_withdrawing_or_withdrawn', 'clear_bit', 'ktime_ms_delta', 'bdev_read_only', 'gfs2_glock_dq_uninit', 'gfs2_recovery_done', 'ktime_get', 'gfs2_glock_nq_num', 'up_read', 'foreach_descriptor', 'gfs2_find_jhead', 'gfs2_jdesc_check', 'lops_before_scan', 'sb_rdonly', 'mutex_unlock', 'smp_mb__after_atomic', 'test_bit', 'GFS2_SB', 'mutex_lock'}, 'gfs2_replay_read_block': {'GFS2_I', 'gfs2_consist_inode', 'gfs2_meta_ra', 'gfs2_get_extent'}, 'clean_journal': {'gfs2_replay_incr_blk', 'GFS2_SB', 'gfs2_write_log_header'}, 'get_log_header': {'__get_log_header', 'brelse', 'GFS2_SB', 'gfs2_replay_read_block'}, 'recover_local_statfs': {'update_statfs_inode', 'GFS2_SB', 'find_local_statfs_inode'}, '__get_log_header': {'crc32', 'crc32c', 'be64_to_cpu', 'cpu_to_be32', 'be32_to_cpu'}, 'gfs2_log_pointers_init': {'gfs2_replay_incr_blk'}, 'gfs2_revoke_clean': {'kfree', 'list_del', 'list_empty', 'list_first_entry'}, 'gfs2_revoke_add': {'list_add', 'kmalloc'}, 'gfs2_recovery_done': {'kobject_uevent_env', 'sprintf'}, 'gfs2_fileattr_set': {'ARRAY_SIZE', 'd_is_special', 'do_gfs2_set_flags', 'fileattr_has_fsx', 'S_ISDIR', 'd_inode'}, 'gfs2_gfsflags_to_fsflags': {'S_ISDIR', 'ARRAY_SIZE'}, 'calc_max_reserv': {'DIV_ROUND_UP', 'gfs2_write_calc_reserv', 'GFS2_SB'}, '__gfs2_fallocate': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'fallocate_chunk', 'gfs2_rg_blocks', 'i_size_write', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'IS_SYNC', 'vfs_fsync_range', 'gfs2_write_calc_reserv', 'gfs2_is_jdata', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'mark_inode_dirty', 'gfs2_inplace_reserve', 'calc_max_reserv', 'file_inode', 'GFS2_SB'}, 'do_flock': {'gfs2_assert_warn', 'msleep', 'spin_lock', 'gfs2_holder_reinit', 'GFS2_I', 'spin_unlock', '__flock_holder_uninit', 'lock_is_write', 'locks_lock_file_wait', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'gfs2_glock_put', 'gfs2_glock_dq', 'IS_SETLKW', 'gfs2_holder_init', 'gfs2_glock_get', 'file_inode', 'mutex_unlock', 'locks_init_lock', 'GFS2_SB', 'mutex_lock'}, 'do_gfs2_set_flags': {'gfs2_glock_nq_init', 'inode_set_ctime_current', 'gfs2_set_inode_flags', 'GFS2_I', 'gfs2_trans_begin', 'gfs2_dinode_out', 'brelse', 'gfs2_log_flush', 'gfs2_glock_dq_uninit', 'truncate_inode_pages', 'gfs2_trans_end', 'gfs2_ordered_del_inode', 'gfs2_permission', 'gfs2_meta_inode_buffer', 'IS_IMMUTABLE', 'gfs2_set_aops', 'filemap_fdatawrite', 'gfs2_trans_add_meta', 'filemap_fdatawait', 'GFS2_SB'}, 'fallocate_chunk': {'GFS2_I', 'sb_issue_zeroout', 'fs_err', 'gfs2_unstuff_dinode', 'gfs2_iomap_alloc', 'unlikely', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_fallocate': {'GFS2_I', 'gfs2_is_jdata', 'gfs2_glock_nq', 'put_write_access', 'file_inode', 'inode_lock', '__gfs2_punch_hole', 'gfs2_holder_init', '__gfs2_fallocate', 'gfs2_holder_uninit', 'inode_newsize_ok', 'gfs2_glock_dq', 'gfs2_rs_deltree', 'get_write_access', 'GFS2_SB', 'inode_unlock'}, 'gfs2_fault': {'GFS2_I', 'gfs2_glock_nq', 'file_inode', 'vmf_fs_error', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'filemap_fault', 'gfs2_holder_init'}, 'gfs2_file_buffered_write': {'gfs2_glock_nq_init', 'fault_in_iov_iter_readable', 'pagefault_disable', 'gfs2_holder_queued', 'GFS2_I', 'iov_iter_count', 'kfree', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'iomap_file_buffered_write', 'gfs2_glock_dq', 'should_fault_in_pages', 'gfs2_holder_init', 'file_inode', 'min', 'pagefault_enable', 'gfs2_holder_uninit', 'GFS2_SB', 'kmalloc'}, 'gfs2_file_direct_read': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'iomap_dio_rw', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_direct_write': {'GFS2_I', 'i_size_read', 'iov_iter_count', 'gfs2_glock_nq', 'fault_in_iov_iter_readable', 'iomap_dio_rw', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_read_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'gfs2_file_direct_read', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'generic_file_read_iter', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_write_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq_init', 'file_remove_privs', 'gfs2_glock_dq_uninit', 'gfs2_size_hint', 'file_inode', 'file_update_time', 'gfs2_file_direct_write', 'inode_lock', 'likely', 'unlikely', 'invalidate_mapping_pages', 'inode_unlock', 'gfs2_file_buffered_write', 'generic_write_checks', 'generic_write_sync'}, 'gfs2_fileattr_get': {'GFS2_I', 'gfs2_glock_nq', 'd_is_special', 'fileattr_fill_flags', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_gfsflags_to_fsflags', 'gfs2_holder_init', 'd_inode'}, 'gfs2_fsync': {'GFS2_I', 'gfs2_is_jdata', 'file_write_and_wait', 'filemap_fdatawrite_range', 'file_fdatawait_range', 'sync_inode_metadata', 'gfs2_ail_flush'}, 'gfs2_llseek': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_seek_data', 'gfs2_seek_hole', 'generic_file_llseek'}, 'gfs2_lock': {'GFS2_I', 'dlm_posix_unlock', 'lock_is_unlock', 'IS_GETLK', 'gfs2_withdrawing_or_withdrawn', 'dlm_posix_cancel', 'dlm_posix_get', 'dlm_posix_lock', 'GFS2_SB', 'locks_lock_file_wait'}, 'gfs2_mmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'file_accessed', 'IS_NOATIME'}, 'gfs2_open': {'GFS2_I', 'S_ISREG', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_open_common'}, 'gfs2_open_common': {'GFS2_I', 'S_ISREG', 'kfree', 'gfs2_is_jdata', 'generic_file_open', 'gfs2_assert_warn', 'mutex_init', 'kzalloc', 'gfs2_qa_get', 'GFS2_SB'}, 'gfs2_page_mkwrite': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'vmf_fs_error', 'gfs2_rg_blocks', 'folio_pos', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'page_folio', 'folio_lock', 'sb_end_pagefault', 'gfs2_write_calc_reserv', 'folio_unlock', 'gfs2_is_jdata', 'gfs2_glock_nq', 'gfs2_unstuff_dinode', 'gfs2_rindex_update', 'gfs2_trans_end', 'set_bit', 'folio_size', 'folio_test_uptodate', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'sb_start_pagefault', 'gfs2_glock_dq', 'folio_mark_dirty', 'gfs2_holder_init', 'gfs2_is_stuffed', 'gfs2_inplace_reserve', 'i_size_read', 'file_inode', 'gfs2_holder_uninit', 'folio_wait_stable', 'gfs2_allocate_folio_backing', 'GFS2_SB'}, 'gfs2_readdir': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_dir_read', 'gfs2_glock_dq_uninit'}, 'gfs2_release': {'GFS2_I', 'kfree', 'gfs2_qa_put', 'gfs2_rs_active', 'gfs2_rs_delete'}, 'gfs2_set_inode_flags': {'GFS2_I', 'is_sxid'}, 'gfs2_size_hint': {'GFS2_I', 'atomic_set', 'file_inode', 'min_t', 'GFS2_SB', 'atomic_read'}, 'gfs2_getlabel': {'file_inode', 'copy_to_user', 'GFS2_SB'}, 'do_unflock': {'gfs2_holder_initialized', 'mutex_unlock', '__flock_holder_uninit', 'gfs2_glock_dq', 'mutex_lock', 'locks_lock_file_wait'}, 'gfs2_compat_ioctl': {'compat_ptr', 'gfs2_ioctl'}, 'gfs2_flock': {'do_unflock', 'lock_is_unlock', 'do_flock'}, 'gfs2_allocate_folio_backing': {'folio_pos', 'gfs2_iomap_alloc'}, 'gfs2_ioctl': {'gfs2_fitrim', 'gfs2_getlabel'}, '__flock_holder_uninit': {'spin_unlock', 'gfs2_holder_uninit', 'gfs2_glock_hold', 'gfs2_glock_put', 'spin_lock'}, 'gfs2_file_splice_write': {'iter_file_splice_write', 'gfs2_size_hint'}, 'should_fault_in_pages': {'iov_iter_count', 'min_t', 'user_backed_iter', 'max', 'offset_in_page'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}, 'signal_our_withdraw': {'msleep() at ./util.c:229 (is an explicit sleep)'}, 'gfs2_withdraw': {'wait_for_completion() at ./util.c:338 (waits for an event and sleeps)'}, 'gfs2_recover_func': {'mutex_lock() at ./recovery.c:465 (is a sleeping lock)'}, 'update_statfs_inode': {'spin_lock() at ./recovery.c:321 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_revoke_add': {'kmalloc() with GFP_NOFS at ./recovery.c:72 (may sleep in PREEMPT_RT)'}, 'gfs2_getlabel': {'copy_to_user() at ./file.c:319 (may sleep on page fault)'}, 'do_flock': {'spin_lock() at ./file.c:1511 (is a sleeping lock on PREEMPT_RT)', 'msleep() at ./file.c:1522 (is an explicit sleep)', 'mutex_lock() at ./file.c:1494 (is a sleeping lock)'}, 'do_unflock': {'mutex_lock() at ./file.c:1543 (is a sleeping lock)'}, '__flock_holder_uninit': {'spin_lock() at ./file.c:1472 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_file_buffered_write': {'kmalloc() with GFP_NOFS at ./file.c:1032 (may sleep in PREEMPT_RT)'}, 'gfs2_open_common': {'kzalloc() with GFP_NOFS at ./file.c:640 (may sleep in PREEMPT_RT)'}, 'gfs2_evict_inodes': {'cond_resched() at ./ops_fstype.c:1764 (may invoke the scheduler)', 'spin_lock() at ./ops_fstype.c:1749 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_hold': {'mutex_lock() at ./ops_fstype.c:542 (is a sleeping lock)', 'spin_lock() at ./ops_fstype.c:585 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_KERNEL at ./ops_fstype.c:566 (may sleep in PREEMPT_RT)'}, 'gfs2_reconfigure': {'spin_lock() at ./ops_fstype.c:1557 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_init_fs_context': {'kmalloc() with GFP_KERNEL at ./ops_fstype.c:1641 (may sleep in PREEMPT_RT)'}, 'gfs2_read_super': {'kmalloc() with GFP_KERNEL at ./ops_fstype.c:223 (may sleep in PREEMPT_RT)'}, 'init_statfs': {'kmalloc() with GFP_NOFS at ./ops_fstype.c:637 (may sleep in PREEMPT_RT)'}, 'init_sbd': {'kzalloc() with GFP_KERNEL at ./ops_fstype.c:78 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}, 'gfs2_withdraw': {'wait_for_completion', 'wake_up_bit', 'fs_err', 'strcmp', 'kobject_uevent', 'panic', 'READ_ONCE', 'dump_stack', 'try_cmpxchg', 'unlikely', 'BIT', 'wait_on_bit', 'BUG_ON', 'clear_bit', 'signal_our_withdraw', 'smp_mb__after_atomic'}, 'gfs2_assert_warn_i': {'time_before', 'panic', 'gfs2_tune_get', 'fs_warn', 'dump_stack', 'BUG'}, 'check_journal_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_find_jhead'}, 'signal_our_withdraw': {'fs_warn', 'PTR_ERR', 'gfs2_glock_hold', 'msleep', 'gfs2_holder_reinit', 'GFS2_I', 'wake_up_bit', 'wake_up', 'wait_event_timeout', 'clear_bit', 'gfs2_inode_lookup', 'check_journal_clean', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'set_bit', 'd_mark_dontcache', 'iput', 'wait_on_bit', 'gfs2_glock_put', 'gfs2_glock_dq', 'gfs2_thaw_freeze_initiator', 'mutex_trylock', 'gfs2_ail_drain', 'gfs2_glock_dq_wait', 'gfs2_gl_dq_holders', 'sb_rdonly', 'IS_ERR', 'gfs2_log_is_empty', 'mutex_unlock', 'gfs2_holder_uninit', 'test_bit'}, 'gfs2_consist_inode_i': {'gfs2_lm', 'gfs2_withdraw', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_assert_withdraw_i': {'fs_err', 'dump_stack', 'gfs2_withdrawing_or_withdrawn', 'gfs2_withdraw', 'gfs2_withdraw_delayed'}, 'gfs2_assert_i': {'fs_emerg'}, 'gfs2_freeze_lock_shared': {'gfs2_glock_nq_init', 'fs_err'}, 'gfs2_io_error_bh_i': {'gfs2_withdrawing_or_withdrawn', 'fs_err', 'gfs2_withdraw'}, 'gfs2_lm': {'va_end', 'fs_err', 'test_bit', 'va_start'}, 'gfs2_consist_rgrpd_i': {'sprintf', 'gfs2_withdraw', 'gfs2_lm', 'gfs2_rgrp_dump', 'gfs2_dump_glock'}, 'gfs2_freeze_unlock': {'gfs2_holder_initialized', 'gfs2_glock_dq_uninit'}, 'gfs2_consist_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_io_error_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_meta_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_metatype_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_recover_journal': {'BUG_ON', 'test_and_set_bit', 'wait_on_bit', 'queue_work'}, 'update_statfs_inode': {'GFS2_I', 'gfs2_statfs_change_out', 'mark_buffer_dirty', 'fs_info', 'gfs2_inode_metasync', 'spin_unlock', 'BUG_ON', 'gfs2_statfs_change_in', 'memset', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'foreach_descriptor': {'GFS2_I', 'lops_scan_elements', 'gfs2_replay_read_block', 'gfs2_replay_incr_blk', 'gfs2_metatype_check', 'gfs2_consist_inode', 'be32_to_cpu', 'brelse', 'GFS2_SB', 'get_log_header', 'gfs2_meta_check'}, 'gfs2_recover_func': {'gfs2_glock_nq_init', 'fs_err', 'down_read', 'fs_warn', 'fs_info', 'recover_local_statfs', 'gfs2_log_pointers_init', 'lops_after_scan', 'clean_journal', 'container_of', 'GFS2_I', 'wake_up_bit', 'gfs2_withdrawing_or_withdrawn', 'clear_bit', 'ktime_ms_delta', 'bdev_read_only', 'gfs2_glock_dq_uninit', 'gfs2_recovery_done', 'ktime_get', 'gfs2_glock_nq_num', 'up_read', 'foreach_descriptor', 'gfs2_find_jhead', 'gfs2_jdesc_check', 'lops_before_scan', 'sb_rdonly', 'mutex_unlock', 'smp_mb__after_atomic', 'test_bit', 'GFS2_SB', 'mutex_lock'}, 'gfs2_replay_read_block': {'GFS2_I', 'gfs2_consist_inode', 'gfs2_meta_ra', 'gfs2_get_extent'}, 'clean_journal': {'gfs2_replay_incr_blk', 'GFS2_SB', 'gfs2_write_log_header'}, 'get_log_header': {'__get_log_header', 'brelse', 'GFS2_SB', 'gfs2_replay_read_block'}, 'recover_local_statfs': {'update_statfs_inode', 'GFS2_SB', 'find_local_statfs_inode'}, '__get_log_header': {'crc32', 'crc32c', 'be64_to_cpu', 'cpu_to_be32', 'be32_to_cpu'}, 'gfs2_log_pointers_init': {'gfs2_replay_incr_blk'}, 'gfs2_revoke_clean': {'kfree', 'list_del', 'list_empty', 'list_first_entry'}, 'gfs2_revoke_add': {'list_add', 'kmalloc'}, 'gfs2_recovery_done': {'kobject_uevent_env', 'sprintf'}, 'gfs2_fileattr_set': {'ARRAY_SIZE', 'd_is_special', 'do_gfs2_set_flags', 'fileattr_has_fsx', 'S_ISDIR', 'd_inode'}, 'gfs2_gfsflags_to_fsflags': {'S_ISDIR', 'ARRAY_SIZE'}, 'calc_max_reserv': {'DIV_ROUND_UP', 'gfs2_write_calc_reserv', 'GFS2_SB'}, '__gfs2_fallocate': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'fallocate_chunk', 'gfs2_rg_blocks', 'i_size_write', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'IS_SYNC', 'vfs_fsync_range', 'gfs2_write_calc_reserv', 'gfs2_is_jdata', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'mark_inode_dirty', 'gfs2_inplace_reserve', 'calc_max_reserv', 'file_inode', 'GFS2_SB'}, 'do_flock': {'gfs2_assert_warn', 'msleep', 'spin_lock', 'gfs2_holder_reinit', 'GFS2_I', 'spin_unlock', '__flock_holder_uninit', 'lock_is_write', 'locks_lock_file_wait', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'gfs2_glock_put', 'gfs2_glock_dq', 'IS_SETLKW', 'gfs2_holder_init', 'gfs2_glock_get', 'file_inode', 'mutex_unlock', 'locks_init_lock', 'GFS2_SB', 'mutex_lock'}, 'do_gfs2_set_flags': {'gfs2_glock_nq_init', 'inode_set_ctime_current', 'gfs2_set_inode_flags', 'GFS2_I', 'gfs2_trans_begin', 'gfs2_dinode_out', 'brelse', 'gfs2_log_flush', 'gfs2_glock_dq_uninit', 'truncate_inode_pages', 'gfs2_trans_end', 'gfs2_ordered_del_inode', 'gfs2_permission', 'gfs2_meta_inode_buffer', 'IS_IMMUTABLE', 'gfs2_set_aops', 'filemap_fdatawrite', 'gfs2_trans_add_meta', 'filemap_fdatawait', 'GFS2_SB'}, 'fallocate_chunk': {'GFS2_I', 'sb_issue_zeroout', 'fs_err', 'gfs2_unstuff_dinode', 'gfs2_iomap_alloc', 'unlikely', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_fallocate': {'GFS2_I', 'gfs2_is_jdata', 'gfs2_glock_nq', 'put_write_access', 'file_inode', 'inode_lock', '__gfs2_punch_hole', 'gfs2_holder_init', '__gfs2_fallocate', 'gfs2_holder_uninit', 'inode_newsize_ok', 'gfs2_glock_dq', 'gfs2_rs_deltree', 'get_write_access', 'GFS2_SB', 'inode_unlock'}, 'gfs2_fault': {'GFS2_I', 'gfs2_glock_nq', 'file_inode', 'vmf_fs_error', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'filemap_fault', 'gfs2_holder_init'}, 'gfs2_file_buffered_write': {'gfs2_glock_nq_init', 'fault_in_iov_iter_readable', 'pagefault_disable', 'gfs2_holder_queued', 'GFS2_I', 'iov_iter_count', 'kfree', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'iomap_file_buffered_write', 'gfs2_glock_dq', 'should_fault_in_pages', 'gfs2_holder_init', 'file_inode', 'min', 'pagefault_enable', 'gfs2_holder_uninit', 'GFS2_SB', 'kmalloc'}, 'gfs2_file_direct_read': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'iomap_dio_rw', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_direct_write': {'GFS2_I', 'i_size_read', 'iov_iter_count', 'gfs2_glock_nq', 'fault_in_iov_iter_readable', 'iomap_dio_rw', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_read_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'gfs2_file_direct_read', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'generic_file_read_iter', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_write_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq_init', 'file_remove_privs', 'gfs2_glock_dq_uninit', 'gfs2_size_hint', 'file_inode', 'file_update_time', 'gfs2_file_direct_write', 'inode_lock', 'likely', 'unlikely', 'invalidate_mapping_pages', 'inode_unlock', 'gfs2_file_buffered_write', 'generic_write_checks', 'generic_write_sync'}, 'gfs2_fileattr_get': {'GFS2_I', 'gfs2_glock_nq', 'd_is_special', 'fileattr_fill_flags', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_gfsflags_to_fsflags', 'gfs2_holder_init', 'd_inode'}, 'gfs2_fsync': {'GFS2_I', 'gfs2_is_jdata', 'file_write_and_wait', 'filemap_fdatawrite_range', 'file_fdatawait_range', 'sync_inode_metadata', 'gfs2_ail_flush'}, 'gfs2_llseek': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_seek_data', 'gfs2_seek_hole', 'generic_file_llseek'}, 'gfs2_lock': {'GFS2_I', 'dlm_posix_unlock', 'lock_is_unlock', 'IS_GETLK', 'gfs2_withdrawing_or_withdrawn', 'dlm_posix_cancel', 'dlm_posix_get', 'dlm_posix_lock', 'GFS2_SB', 'locks_lock_file_wait'}, 'gfs2_mmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'file_accessed', 'IS_NOATIME'}, 'gfs2_open': {'GFS2_I', 'S_ISREG', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_open_common'}, 'gfs2_open_common': {'GFS2_I', 'S_ISREG', 'kfree', 'gfs2_is_jdata', 'generic_file_open', 'gfs2_assert_warn', 'mutex_init', 'kzalloc', 'gfs2_qa_get', 'GFS2_SB'}, 'gfs2_page_mkwrite': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'vmf_fs_error', 'gfs2_rg_blocks', 'folio_pos', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'page_folio', 'folio_lock', 'sb_end_pagefault', 'gfs2_write_calc_reserv', 'folio_unlock', 'gfs2_is_jdata', 'gfs2_glock_nq', 'gfs2_unstuff_dinode', 'gfs2_rindex_update', 'gfs2_trans_end', 'set_bit', 'folio_size', 'folio_test_uptodate', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'sb_start_pagefault', 'gfs2_glock_dq', 'folio_mark_dirty', 'gfs2_holder_init', 'gfs2_is_stuffed', 'gfs2_inplace_reserve', 'i_size_read', 'file_inode', 'gfs2_holder_uninit', 'folio_wait_stable', 'gfs2_allocate_folio_backing', 'GFS2_SB'}, 'gfs2_readdir': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_dir_read', 'gfs2_glock_dq_uninit'}, 'gfs2_release': {'GFS2_I', 'kfree', 'gfs2_qa_put', 'gfs2_rs_active', 'gfs2_rs_delete'}, 'gfs2_set_inode_flags': {'GFS2_I', 'is_sxid'}, 'gfs2_size_hint': {'GFS2_I', 'atomic_set', 'file_inode', 'min_t', 'GFS2_SB', 'atomic_read'}, 'gfs2_getlabel': {'file_inode', 'copy_to_user', 'GFS2_SB'}, 'do_unflock': {'gfs2_holder_initialized', 'mutex_unlock', '__flock_holder_uninit', 'gfs2_glock_dq', 'mutex_lock', 'locks_lock_file_wait'}, 'gfs2_compat_ioctl': {'compat_ptr', 'gfs2_ioctl'}, 'gfs2_flock': {'do_unflock', 'lock_is_unlock', 'do_flock'}, 'gfs2_allocate_folio_backing': {'folio_pos', 'gfs2_iomap_alloc'}, 'gfs2_ioctl': {'gfs2_fitrim', 'gfs2_getlabel'}, '__flock_holder_uninit': {'spin_unlock', 'gfs2_holder_uninit', 'gfs2_glock_hold', 'gfs2_glock_put', 'spin_lock'}, 'gfs2_file_splice_write': {'iter_file_splice_write', 'gfs2_size_hint'}, 'should_fault_in_pages': {'iov_iter_count', 'min_t', 'user_backed_iter', 'max', 'offset_in_page'}, 'gfs2_fill_super': {'fs_err', 'gfs2_freeze_lock_shared', 'gfs2_make_fs_rw', 'snprintf', 'gfs2_destroy_threads', 'mapping_set_gfp_mask', 'complete_all', 'gfs2_online_uevent', 'alloc_workqueue', 'destroy_workqueue', 'gfs2_gl_hash_clear', 'gfs2_create_debugfs_file', 'gfs2_statfs_init', 'BIT', 'sb_min_blocksize', 'gfs2_lm_mount', 'sb_dqopt', 'init_threads', 'pr_warn', 'gfs2_aspace', 'gfs2_lm_unmount', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'wait_on_journal', 'new_inode', 'set_bit', 'iput', 'init_per_node', 'gfs2_freeze_unlock', 'init_sbd', 'init_sb', 'set_default_d_op', 'dput', 'init_names', 'gfs2_sys_fs_del', 'sb_rdonly', 'gfs2_sys_fs_add', 'init_locking', 'init_inodes'}, 'gfs2_read_sb': {'do_div', 'fs_err', 'atomic_set', 'gfs2_read_super', 'DIV_ROUND_UP', 'BIT', 'gfs2_assert'}, 'gfs2_tune_init': {'spin_lock_init', 'BIT'}, 'init_sb': {'sb_set_blocksize', 'fs_err', 'dput', 'gfs2_glock_dq_uninit', 'dget', 'BUG', 'gfs2_read_sb', 'gfs2_lookup_root', 'gfs2_glock_nq_num', 'bdev_logical_block_size'}, 'init_names': {'strscpy', 'gfs2_read_super', 'strchr', 'BUILD_BUG_ON'}, 'gfs2_jindex_hold': {'IS_ERR_OR_NULL', 'gfs2_glock_nq_init', 'PTR_ERR', 'list_add_tail', 'spin_lock', 'INIT_LIST_HEAD', 'GFS2_I', 'sprintf', 'spin_unlock', 'gfs2_lookupi', 'kfree', 'gfs2_glock_dq_uninit', 'd_mark_dontcache', 'INIT_WORK', 'gfs2_dir_check', 'mutex_unlock', 'kzalloc', 'gfs2_disk_hash', 'mutex_lock'}, 'init_journal': {'gfs2_jindex_size', 'gfs2_glock_nq_init', 'fs_err', 'atomic_set', 'gfs2_holder_mark_uninitialized', 'gfs2_jindex_hold', 'PTR_ERR', 'gfs2_jindex_free', 'GFS2_I', 'gfs2_map_journal_extents', 'gfs2_others_may_mount', 'gfs2_lookup_meta', 'atomic_read', 'check_journal_clean', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_jdesc_find', 'set_bit', 'iput', 'gfs2_recover_journal', 'uninit_statfs', 'init_statfs', 'gfs2_glock_nq_num', 'INIT_WORK', 'd_inode', 'gfs2_jdesc_check', 'trace_gfs2_log_blocks', 'IS_ERR'}, 'init_per_node': {'GFS2_I', 'gfs2_glock_nq_init', 'fs_err', 'sprintf', 'gfs2_glock_dq_uninit', 'iput', 'PTR_ERR', 'IS_ERR', 'gfs2_lookup_meta', 'd_inode'}, 'init_statfs': {'GFS2_I', 'kfree', 'gfs2_glock_nq_init', 'fs_err', 'sprintf', 'gfs2_glock_dq_uninit', 'free_local_statfs_inodes', 'iput', 'PTR_ERR', 'kmalloc', 'list_add_tail', 'IS_ERR', 'gfs2_meta_inode_buffer', 'gfs2_lookup_meta', 'd_inode'}, 'init_sbd': {'free_sbd', 'atomic_set', 'gfs2_tune_init', 'spin_lock_init', 'set_bit', 'init_completion', 'init_rwsem', 'mutex_init', 'kzalloc', 'alloc_percpu', 'INIT_LIST_HEAD', 'init_waitqueue_head'}, 'gfs2_lookup_root': {'fs_err', 'PTR_ERR', 'IS_ERR', 'gfs2_inode_lookup', 'd_make_root'}, 'gfs2_meta_get_tree': {'dget', 'deactivate_locked_super', 'PTR_ERR', 'sget_fc', 'IS_ERR', 'pr_warn', 'path_put', 'kern_path'}, 'init_inodes': {'fs_err', 'gfs2_clear_rgrpd', 'gfs2_rindex_update', 'iput', 'PTR_ERR', 'IS_ERR', 'init_journal', 'complete_all', 'lockdep_set_class', 'gfs2_lookup_meta', 'd_inode'}, 'init_threads': {'kthread_stop_put', 'fs_err', 'get_task_struct', 'wake_up_process', 'PTR_ERR', 'IS_ERR', 'kthread_create'}, 'gfs2_evict_inodes': {'set_bit', 'iput', 'spin_unlock', 'need_resched', 'atomic_inc', 'cond_resched', 'spin_lock'}, 'gfs2_read_super': {'kfree', 'unlikely', 'gfs2_sb_in', 'pr_warn', 'gfs2_check_sb', 'kmalloc', 'bdev_rw_virt'}, 'gfs2_sb_in': {'memcpy', 'super_set_uuid', 'be32_to_cpu', 'be64_to_cpu'}, 'uninit_statfs': {'iput', 'free_local_statfs_inodes', 'brelse', 'gfs2_glock_dq_uninit'}, 'gfs2_reconfigure': {'errorfc', 'gfs2_make_fs_rw', 'set_bit', 'spin_unlock', 'sync_filesystem', 'clear_bit', 'gfs2_make_fs_ro', 'gfs2_online_uevent', 'strcmp', 'spin_lock'}, 'gfs2_lm_mount': {'strcmp', 'strsep', 'test_and_clear_bit', 'fs_info', 'match_int', 'complete_all', 'match_token', 'pr_info'}, 'gfs2_kill_sb': {'dput', 'set_bit', 'gfs2_evict_inodes', 'gfs2_flush_delete_work', 'shrink_dcache_sb', 'destroy_workqueue', 'gfs2_log_flush', 'kill_block_super'}, 'gfs2_get_tree': {'dget', 'get_tree_bdev', 'dput'}, 'gfs2_check_sb': {'fs_warn', 'ffs', 'pr_warn'}, 'free_sbd': {'kfree', 'free_percpu'}, 'init_locking': {'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_glock_put', 'gfs2_glock_nq_num', 'gfs2_glock_get'}, 'gfs2_others_may_mount': {'kobject_uevent_env', 'fs_info'}, 'gfs2_parse_param': {'strscpy', 'fs_parse', 'invalfc'}, 'gfs2_meta_init_fs_context': {'gfs2_init_fs_context'}, 'gfs2_lm_unmount': {'gfs2_withdrawing_or_withdrawn'}, 'gfs2_fc_free': {'kfree'}, 'gfs2_init_fs_context': {'kmalloc', 'memset'}, 'gfs2_online_uevent': {'kobject_uevent_env', 'sprintf', 'sb_rdonly'}, 'gfs2_destroy_threads': {'kthread_stop_put'}, 'wait_on_journal': {'wait_on_bit'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}, 'signal_our_withdraw': {'msleep() at ./util.c:229 (is an explicit sleep)'}, 'gfs2_withdraw': {'wait_for_completion() at ./util.c:338 (waits for an event and sleeps)'}, 'gfs2_recover_func': {'mutex_lock() at ./recovery.c:465 (is a sleeping lock)'}, 'update_statfs_inode': {'spin_lock() at ./recovery.c:321 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_revoke_add': {'kmalloc() with GFP_NOFS at ./recovery.c:72 (may sleep in PREEMPT_RT)'}, 'gfs2_getlabel': {'copy_to_user() at ./file.c:319 (may sleep on page fault)'}, 'do_flock': {'spin_lock() at ./file.c:1511 (is a sleeping lock on PREEMPT_RT)', 'msleep() at ./file.c:1522 (is an explicit sleep)', 'mutex_lock() at ./file.c:1494 (is a sleeping lock)'}, 'do_unflock': {'mutex_lock() at ./file.c:1543 (is a sleeping lock)'}, '__flock_holder_uninit': {'spin_lock() at ./file.c:1472 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_file_buffered_write': {'kmalloc() with GFP_NOFS at ./file.c:1032 (may sleep in PREEMPT_RT)'}, 'gfs2_open_common': {'kzalloc() with GFP_NOFS at ./file.c:640 (may sleep in PREEMPT_RT)'}, 'gfs2_evict_inodes': {'cond_resched() at ./ops_fstype.c:1764 (may invoke the scheduler)', 'spin_lock() at ./ops_fstype.c:1749 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_hold': {'mutex_lock() at ./ops_fstype.c:542 (is a sleeping lock)', 'spin_lock() at ./ops_fstype.c:585 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_KERNEL at ./ops_fstype.c:566 (may sleep in PREEMPT_RT)'}, 'gfs2_reconfigure': {'spin_lock() at ./ops_fstype.c:1557 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_init_fs_context': {'kmalloc() with GFP_KERNEL at ./ops_fstype.c:1641 (may sleep in PREEMPT_RT)'}, 'gfs2_read_super': {'kmalloc() with GFP_KERNEL at ./ops_fstype.c:223 (may sleep in PREEMPT_RT)'}, 'init_statfs': {'kmalloc() with GFP_NOFS at ./ops_fstype.c:637 (may sleep in PREEMPT_RT)'}, 'init_sbd': {'kzalloc() with GFP_KERNEL at ./ops_fstype.c:78 (may sleep in PREEMPT_RT)'}, 'gfs2_tune_get_i': {'spin_lock() at ./util.h:185 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}, 'gfs2_withdraw': {'wait_for_completion', 'wake_up_bit', 'fs_err', 'strcmp', 'kobject_uevent', 'panic', 'READ_ONCE', 'dump_stack', 'try_cmpxchg', 'unlikely', 'BIT', 'wait_on_bit', 'BUG_ON', 'clear_bit', 'signal_our_withdraw', 'smp_mb__after_atomic'}, 'gfs2_assert_warn_i': {'time_before', 'panic', 'gfs2_tune_get', 'fs_warn', 'dump_stack', 'BUG'}, 'check_journal_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_find_jhead'}, 'signal_our_withdraw': {'fs_warn', 'PTR_ERR', 'gfs2_glock_hold', 'msleep', 'gfs2_holder_reinit', 'GFS2_I', 'wake_up_bit', 'wake_up', 'wait_event_timeout', 'clear_bit', 'gfs2_inode_lookup', 'check_journal_clean', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'set_bit', 'd_mark_dontcache', 'iput', 'wait_on_bit', 'gfs2_glock_put', 'gfs2_glock_dq', 'gfs2_thaw_freeze_initiator', 'mutex_trylock', 'gfs2_ail_drain', 'gfs2_glock_dq_wait', 'gfs2_gl_dq_holders', 'sb_rdonly', 'IS_ERR', 'gfs2_log_is_empty', 'mutex_unlock', 'gfs2_holder_uninit', 'test_bit'}, 'gfs2_consist_inode_i': {'gfs2_lm', 'gfs2_withdraw', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_assert_withdraw_i': {'fs_err', 'dump_stack', 'gfs2_withdrawing_or_withdrawn', 'gfs2_withdraw', 'gfs2_withdraw_delayed'}, 'gfs2_assert_i': {'fs_emerg'}, 'gfs2_freeze_lock_shared': {'gfs2_glock_nq_init', 'fs_err'}, 'gfs2_io_error_bh_i': {'gfs2_withdrawing_or_withdrawn', 'fs_err', 'gfs2_withdraw'}, 'gfs2_lm': {'va_end', 'fs_err', 'test_bit', 'va_start'}, 'gfs2_consist_rgrpd_i': {'sprintf', 'gfs2_withdraw', 'gfs2_lm', 'gfs2_rgrp_dump', 'gfs2_dump_glock'}, 'gfs2_freeze_unlock': {'gfs2_holder_initialized', 'gfs2_glock_dq_uninit'}, 'gfs2_consist_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_io_error_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_meta_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_metatype_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_recover_journal': {'BUG_ON', 'test_and_set_bit', 'wait_on_bit', 'queue_work'}, 'update_statfs_inode': {'GFS2_I', 'gfs2_statfs_change_out', 'mark_buffer_dirty', 'fs_info', 'gfs2_inode_metasync', 'spin_unlock', 'BUG_ON', 'gfs2_statfs_change_in', 'memset', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'foreach_descriptor': {'GFS2_I', 'lops_scan_elements', 'gfs2_replay_read_block', 'gfs2_replay_incr_blk', 'gfs2_metatype_check', 'gfs2_consist_inode', 'be32_to_cpu', 'brelse', 'GFS2_SB', 'get_log_header', 'gfs2_meta_check'}, 'gfs2_recover_func': {'gfs2_glock_nq_init', 'fs_err', 'down_read', 'fs_warn', 'fs_info', 'recover_local_statfs', 'gfs2_log_pointers_init', 'lops_after_scan', 'clean_journal', 'container_of', 'GFS2_I', 'wake_up_bit', 'gfs2_withdrawing_or_withdrawn', 'clear_bit', 'ktime_ms_delta', 'bdev_read_only', 'gfs2_glock_dq_uninit', 'gfs2_recovery_done', 'ktime_get', 'gfs2_glock_nq_num', 'up_read', 'foreach_descriptor', 'gfs2_find_jhead', 'gfs2_jdesc_check', 'lops_before_scan', 'sb_rdonly', 'mutex_unlock', 'smp_mb__after_atomic', 'test_bit', 'GFS2_SB', 'mutex_lock'}, 'gfs2_replay_read_block': {'GFS2_I', 'gfs2_consist_inode', 'gfs2_meta_ra', 'gfs2_get_extent'}, 'clean_journal': {'gfs2_replay_incr_blk', 'GFS2_SB', 'gfs2_write_log_header'}, 'get_log_header': {'__get_log_header', 'brelse', 'GFS2_SB', 'gfs2_replay_read_block'}, 'recover_local_statfs': {'update_statfs_inode', 'GFS2_SB', 'find_local_statfs_inode'}, '__get_log_header': {'crc32', 'crc32c', 'be64_to_cpu', 'cpu_to_be32', 'be32_to_cpu'}, 'gfs2_log_pointers_init': {'gfs2_replay_incr_blk'}, 'gfs2_revoke_clean': {'kfree', 'list_del', 'list_empty', 'list_first_entry'}, 'gfs2_revoke_add': {'list_add', 'kmalloc'}, 'gfs2_recovery_done': {'kobject_uevent_env', 'sprintf'}, 'gfs2_fileattr_set': {'ARRAY_SIZE', 'd_is_special', 'do_gfs2_set_flags', 'fileattr_has_fsx', 'S_ISDIR', 'd_inode'}, 'gfs2_gfsflags_to_fsflags': {'S_ISDIR', 'ARRAY_SIZE'}, 'calc_max_reserv': {'DIV_ROUND_UP', 'gfs2_write_calc_reserv', 'GFS2_SB'}, '__gfs2_fallocate': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'fallocate_chunk', 'gfs2_rg_blocks', 'i_size_write', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'IS_SYNC', 'vfs_fsync_range', 'gfs2_write_calc_reserv', 'gfs2_is_jdata', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'mark_inode_dirty', 'gfs2_inplace_reserve', 'calc_max_reserv', 'file_inode', 'GFS2_SB'}, 'do_flock': {'gfs2_assert_warn', 'msleep', 'spin_lock', 'gfs2_holder_reinit', 'GFS2_I', 'spin_unlock', '__flock_holder_uninit', 'lock_is_write', 'locks_lock_file_wait', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'gfs2_glock_put', 'gfs2_glock_dq', 'IS_SETLKW', 'gfs2_holder_init', 'gfs2_glock_get', 'file_inode', 'mutex_unlock', 'locks_init_lock', 'GFS2_SB', 'mutex_lock'}, 'do_gfs2_set_flags': {'gfs2_glock_nq_init', 'inode_set_ctime_current', 'gfs2_set_inode_flags', 'GFS2_I', 'gfs2_trans_begin', 'gfs2_dinode_out', 'brelse', 'gfs2_log_flush', 'gfs2_glock_dq_uninit', 'truncate_inode_pages', 'gfs2_trans_end', 'gfs2_ordered_del_inode', 'gfs2_permission', 'gfs2_meta_inode_buffer', 'IS_IMMUTABLE', 'gfs2_set_aops', 'filemap_fdatawrite', 'gfs2_trans_add_meta', 'filemap_fdatawait', 'GFS2_SB'}, 'fallocate_chunk': {'GFS2_I', 'sb_issue_zeroout', 'fs_err', 'gfs2_unstuff_dinode', 'gfs2_iomap_alloc', 'unlikely', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_fallocate': {'GFS2_I', 'gfs2_is_jdata', 'gfs2_glock_nq', 'put_write_access', 'file_inode', 'inode_lock', '__gfs2_punch_hole', 'gfs2_holder_init', '__gfs2_fallocate', 'gfs2_holder_uninit', 'inode_newsize_ok', 'gfs2_glock_dq', 'gfs2_rs_deltree', 'get_write_access', 'GFS2_SB', 'inode_unlock'}, 'gfs2_fault': {'GFS2_I', 'gfs2_glock_nq', 'file_inode', 'vmf_fs_error', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'filemap_fault', 'gfs2_holder_init'}, 'gfs2_file_buffered_write': {'gfs2_glock_nq_init', 'fault_in_iov_iter_readable', 'pagefault_disable', 'gfs2_holder_queued', 'GFS2_I', 'iov_iter_count', 'kfree', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'iomap_file_buffered_write', 'gfs2_glock_dq', 'should_fault_in_pages', 'gfs2_holder_init', 'file_inode', 'min', 'pagefault_enable', 'gfs2_holder_uninit', 'GFS2_SB', 'kmalloc'}, 'gfs2_file_direct_read': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'iomap_dio_rw', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_direct_write': {'GFS2_I', 'i_size_read', 'iov_iter_count', 'gfs2_glock_nq', 'fault_in_iov_iter_readable', 'iomap_dio_rw', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_read_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'gfs2_file_direct_read', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'generic_file_read_iter', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_write_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq_init', 'file_remove_privs', 'gfs2_glock_dq_uninit', 'gfs2_size_hint', 'file_inode', 'file_update_time', 'gfs2_file_direct_write', 'inode_lock', 'likely', 'unlikely', 'invalidate_mapping_pages', 'inode_unlock', 'gfs2_file_buffered_write', 'generic_write_checks', 'generic_write_sync'}, 'gfs2_fileattr_get': {'GFS2_I', 'gfs2_glock_nq', 'd_is_special', 'fileattr_fill_flags', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_gfsflags_to_fsflags', 'gfs2_holder_init', 'd_inode'}, 'gfs2_fsync': {'GFS2_I', 'gfs2_is_jdata', 'file_write_and_wait', 'filemap_fdatawrite_range', 'file_fdatawait_range', 'sync_inode_metadata', 'gfs2_ail_flush'}, 'gfs2_llseek': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_seek_data', 'gfs2_seek_hole', 'generic_file_llseek'}, 'gfs2_lock': {'GFS2_I', 'dlm_posix_unlock', 'lock_is_unlock', 'IS_GETLK', 'gfs2_withdrawing_or_withdrawn', 'dlm_posix_cancel', 'dlm_posix_get', 'dlm_posix_lock', 'GFS2_SB', 'locks_lock_file_wait'}, 'gfs2_mmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'file_accessed', 'IS_NOATIME'}, 'gfs2_open': {'GFS2_I', 'S_ISREG', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_open_common'}, 'gfs2_open_common': {'GFS2_I', 'S_ISREG', 'kfree', 'gfs2_is_jdata', 'generic_file_open', 'gfs2_assert_warn', 'mutex_init', 'kzalloc', 'gfs2_qa_get', 'GFS2_SB'}, 'gfs2_page_mkwrite': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'vmf_fs_error', 'gfs2_rg_blocks', 'folio_pos', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'page_folio', 'folio_lock', 'sb_end_pagefault', 'gfs2_write_calc_reserv', 'folio_unlock', 'gfs2_is_jdata', 'gfs2_glock_nq', 'gfs2_unstuff_dinode', 'gfs2_rindex_update', 'gfs2_trans_end', 'set_bit', 'folio_size', 'folio_test_uptodate', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'sb_start_pagefault', 'gfs2_glock_dq', 'folio_mark_dirty', 'gfs2_holder_init', 'gfs2_is_stuffed', 'gfs2_inplace_reserve', 'i_size_read', 'file_inode', 'gfs2_holder_uninit', 'folio_wait_stable', 'gfs2_allocate_folio_backing', 'GFS2_SB'}, 'gfs2_readdir': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_dir_read', 'gfs2_glock_dq_uninit'}, 'gfs2_release': {'GFS2_I', 'kfree', 'gfs2_qa_put', 'gfs2_rs_active', 'gfs2_rs_delete'}, 'gfs2_set_inode_flags': {'GFS2_I', 'is_sxid'}, 'gfs2_size_hint': {'GFS2_I', 'atomic_set', 'file_inode', 'min_t', 'GFS2_SB', 'atomic_read'}, 'gfs2_getlabel': {'file_inode', 'copy_to_user', 'GFS2_SB'}, 'do_unflock': {'gfs2_holder_initialized', 'mutex_unlock', '__flock_holder_uninit', 'gfs2_glock_dq', 'mutex_lock', 'locks_lock_file_wait'}, 'gfs2_compat_ioctl': {'compat_ptr', 'gfs2_ioctl'}, 'gfs2_flock': {'do_unflock', 'lock_is_unlock', 'do_flock'}, 'gfs2_allocate_folio_backing': {'folio_pos', 'gfs2_iomap_alloc'}, 'gfs2_ioctl': {'gfs2_fitrim', 'gfs2_getlabel'}, '__flock_holder_uninit': {'spin_unlock', 'gfs2_holder_uninit', 'gfs2_glock_hold', 'gfs2_glock_put', 'spin_lock'}, 'gfs2_file_splice_write': {'iter_file_splice_write', 'gfs2_size_hint'}, 'should_fault_in_pages': {'iov_iter_count', 'min_t', 'user_backed_iter', 'max', 'offset_in_page'}, 'gfs2_fill_super': {'fs_err', 'gfs2_freeze_lock_shared', 'gfs2_make_fs_rw', 'snprintf', 'gfs2_destroy_threads', 'mapping_set_gfp_mask', 'complete_all', 'gfs2_online_uevent', 'alloc_workqueue', 'destroy_workqueue', 'gfs2_gl_hash_clear', 'gfs2_create_debugfs_file', 'gfs2_statfs_init', 'BIT', 'sb_min_blocksize', 'gfs2_lm_mount', 'sb_dqopt', 'init_threads', 'pr_warn', 'gfs2_aspace', 'gfs2_lm_unmount', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'wait_on_journal', 'new_inode', 'set_bit', 'iput', 'init_per_node', 'gfs2_freeze_unlock', 'init_sbd', 'init_sb', 'set_default_d_op', 'dput', 'init_names', 'gfs2_sys_fs_del', 'sb_rdonly', 'gfs2_sys_fs_add', 'init_locking', 'init_inodes'}, 'gfs2_read_sb': {'do_div', 'fs_err', 'atomic_set', 'gfs2_read_super', 'DIV_ROUND_UP', 'BIT', 'gfs2_assert'}, 'gfs2_tune_init': {'spin_lock_init', 'BIT'}, 'init_sb': {'sb_set_blocksize', 'fs_err', 'dput', 'gfs2_glock_dq_uninit', 'dget', 'BUG', 'gfs2_read_sb', 'gfs2_lookup_root', 'gfs2_glock_nq_num', 'bdev_logical_block_size'}, 'init_names': {'strscpy', 'gfs2_read_super', 'strchr', 'BUILD_BUG_ON'}, 'gfs2_jindex_hold': {'IS_ERR_OR_NULL', 'gfs2_glock_nq_init', 'PTR_ERR', 'list_add_tail', 'spin_lock', 'INIT_LIST_HEAD', 'GFS2_I', 'sprintf', 'spin_unlock', 'gfs2_lookupi', 'kfree', 'gfs2_glock_dq_uninit', 'd_mark_dontcache', 'INIT_WORK', 'gfs2_dir_check', 'mutex_unlock', 'kzalloc', 'gfs2_disk_hash', 'mutex_lock'}, 'init_journal': {'gfs2_jindex_size', 'gfs2_glock_nq_init', 'fs_err', 'atomic_set', 'gfs2_holder_mark_uninitialized', 'gfs2_jindex_hold', 'PTR_ERR', 'gfs2_jindex_free', 'GFS2_I', 'gfs2_map_journal_extents', 'gfs2_others_may_mount', 'gfs2_lookup_meta', 'atomic_read', 'check_journal_clean', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_jdesc_find', 'set_bit', 'iput', 'gfs2_recover_journal', 'uninit_statfs', 'init_statfs', 'gfs2_glock_nq_num', 'INIT_WORK', 'd_inode', 'gfs2_jdesc_check', 'trace_gfs2_log_blocks', 'IS_ERR'}, 'init_per_node': {'GFS2_I', 'gfs2_glock_nq_init', 'fs_err', 'sprintf', 'gfs2_glock_dq_uninit', 'iput', 'PTR_ERR', 'IS_ERR', 'gfs2_lookup_meta', 'd_inode'}, 'init_statfs': {'GFS2_I', 'kfree', 'gfs2_glock_nq_init', 'fs_err', 'sprintf', 'gfs2_glock_dq_uninit', 'free_local_statfs_inodes', 'iput', 'PTR_ERR', 'kmalloc', 'list_add_tail', 'IS_ERR', 'gfs2_meta_inode_buffer', 'gfs2_lookup_meta', 'd_inode'}, 'init_sbd': {'free_sbd', 'atomic_set', 'gfs2_tune_init', 'spin_lock_init', 'set_bit', 'init_completion', 'init_rwsem', 'mutex_init', 'kzalloc', 'alloc_percpu', 'INIT_LIST_HEAD', 'init_waitqueue_head'}, 'gfs2_lookup_root': {'fs_err', 'PTR_ERR', 'IS_ERR', 'gfs2_inode_lookup', 'd_make_root'}, 'gfs2_meta_get_tree': {'dget', 'deactivate_locked_super', 'PTR_ERR', 'sget_fc', 'IS_ERR', 'pr_warn', 'path_put', 'kern_path'}, 'init_inodes': {'fs_err', 'gfs2_clear_rgrpd', 'gfs2_rindex_update', 'iput', 'PTR_ERR', 'IS_ERR', 'init_journal', 'complete_all', 'lockdep_set_class', 'gfs2_lookup_meta', 'd_inode'}, 'init_threads': {'kthread_stop_put', 'fs_err', 'get_task_struct', 'wake_up_process', 'PTR_ERR', 'IS_ERR', 'kthread_create'}, 'gfs2_evict_inodes': {'set_bit', 'iput', 'spin_unlock', 'need_resched', 'atomic_inc', 'cond_resched', 'spin_lock'}, 'gfs2_read_super': {'kfree', 'unlikely', 'gfs2_sb_in', 'pr_warn', 'gfs2_check_sb', 'kmalloc', 'bdev_rw_virt'}, 'gfs2_sb_in': {'memcpy', 'super_set_uuid', 'be32_to_cpu', 'be64_to_cpu'}, 'uninit_statfs': {'iput', 'free_local_statfs_inodes', 'brelse', 'gfs2_glock_dq_uninit'}, 'gfs2_reconfigure': {'errorfc', 'gfs2_make_fs_rw', 'set_bit', 'spin_unlock', 'sync_filesystem', 'clear_bit', 'gfs2_make_fs_ro', 'gfs2_online_uevent', 'strcmp', 'spin_lock'}, 'gfs2_lm_mount': {'strcmp', 'strsep', 'test_and_clear_bit', 'fs_info', 'match_int', 'complete_all', 'match_token', 'pr_info'}, 'gfs2_kill_sb': {'dput', 'set_bit', 'gfs2_evict_inodes', 'gfs2_flush_delete_work', 'shrink_dcache_sb', 'destroy_workqueue', 'gfs2_log_flush', 'kill_block_super'}, 'gfs2_get_tree': {'dget', 'get_tree_bdev', 'dput'}, 'gfs2_check_sb': {'fs_warn', 'ffs', 'pr_warn'}, 'free_sbd': {'kfree', 'free_percpu'}, 'init_locking': {'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_glock_put', 'gfs2_glock_nq_num', 'gfs2_glock_get'}, 'gfs2_others_may_mount': {'kobject_uevent_env', 'fs_info'}, 'gfs2_parse_param': {'strscpy', 'fs_parse', 'invalfc'}, 'gfs2_meta_init_fs_context': {'gfs2_init_fs_context'}, 'gfs2_lm_unmount': {'gfs2_withdrawing_or_withdrawn'}, 'gfs2_fc_free': {'kfree'}, 'gfs2_init_fs_context': {'kmalloc', 'memset'}, 'gfs2_online_uevent': {'kobject_uevent_env', 'sprintf', 'sb_rdonly'}, 'gfs2_destroy_threads': {'kthread_stop_put'}, 'wait_on_journal': {'wait_on_bit'}, 'gfs2_meta_check': {'unlikely', 'be32_to_cpu', 'fs_err'}, 'gfs2_metatype_check_i': {'gfs2_metatype_check_ii', 'unlikely', 'gfs2_meta_check_ii', 'be32_to_cpu'}, 'gfs2_metatype_set': {'cpu_to_be32'}, 'gfs2_withdraw_delayed': {'set_bit'}, 'gfs2_tune_get_i': {'spin_lock', 'spin_unlock'}, 'gfs2_withdraw_in_prog': {'unlikely', 'test_bit'}, 'gfs2_withdrawing': {'unlikely', 'test_bit'}, 'gfs2_withdrawing_or_withdrawn': {'unlikely', 'test_bit'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_quota_sync': {'mutex_lock() at ./quota.c:1324 (is a sleeping lock)', 'kcalloc() with GFP_KERNEL at ./quota.c:1320 (may sleep in PREEMPT_RT)', 'spin_lock() at ./quota.c:1332 (is a sleeping lock on PREEMPT_RT)'}, 'bh_get': {'spin_lock() at ./quota.c:402 (is a sleeping lock on PREEMPT_RT)'}, 'bh_put': {'spin_lock() at ./quota.c:452 (is a sleeping lock on PREEMPT_RT)'}, 'do_glock': {'spin_lock() at ./quota.c:1039 (is a sleeping lock on PREEMPT_RT)'}, 'do_qc': {'spin_lock() at ./quota.c:688 (is a sleeping lock on PREEMPT_RT)'}, 'do_sync': {'spin_lock() at ./quota.c:986 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_adjust_quota': {'spin_lock() at ./quota.c:861 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_get': {'spin_lock() at ./quota.c:551 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qa_put': {'spin_lock() at ./quota.c:575 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_qd_dispose': {'spin_lock() at ./quota.c:120 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_check': {'spin_lock() at ./quota.c:1245 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_cleanup': {'spin_lock() at ./quota.c:1522 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_quota_init': {'spin_lock() at ./quota.c:1458 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_NOFS | __GFP_NOWARN at ./quota.c:1409 (may sleep in PREEMPT_RT)'}, 'gfs2_quota_unlock': {'spin_lock() at ./quota.c:1166 (is a sleeping lock on PREEMPT_RT)'}, 'need_sync': {'spin_lock() at ./quota.c:1116 (is a sleeping lock on PREEMPT_RT)'}, 'qd_get': {'spin_lock() at ./quota.c:296 (is a sleeping lock on PREEMPT_RT)'}, 'qd_grab_sync': {'spin_lock() at ./quota.c:468 (is a sleeping lock on PREEMPT_RT)'}, 'qd_unlock': {'spin_lock() at ./quota.c:505 (is a sleeping lock on PREEMPT_RT)'}, 'slot_get': {'spin_lock() at ./quota.c:352 (is a sleeping lock on PREEMPT_RT)'}, 'slot_hold': {'spin_lock() at ./quota.c:373 (is a sleeping lock on PREEMPT_RT)'}, 'slot_put': {'spin_lock() at ./quota.c:383 (is a sleeping lock on PREEMPT_RT)'}, 'update_qd': {'spin_lock() at ./quota.c:1015 (is a sleeping lock on PREEMPT_RT)'}, 'signal_our_withdraw': {'msleep() at ./util.c:229 (is an explicit sleep)'}, 'gfs2_withdraw': {'wait_for_completion() at ./util.c:338 (waits for an event and sleeps)'}, 'gfs2_recover_func': {'mutex_lock() at ./recovery.c:465 (is a sleeping lock)'}, 'update_statfs_inode': {'spin_lock() at ./recovery.c:321 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_revoke_add': {'kmalloc() with GFP_NOFS at ./recovery.c:72 (may sleep in PREEMPT_RT)'}, 'gfs2_getlabel': {'copy_to_user() at ./file.c:319 (may sleep on page fault)'}, 'do_flock': {'spin_lock() at ./file.c:1511 (is a sleeping lock on PREEMPT_RT)', 'msleep() at ./file.c:1522 (is an explicit sleep)', 'mutex_lock() at ./file.c:1494 (is a sleeping lock)'}, 'do_unflock': {'mutex_lock() at ./file.c:1543 (is a sleeping lock)'}, '__flock_holder_uninit': {'spin_lock() at ./file.c:1472 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_file_buffered_write': {'kmalloc() with GFP_NOFS at ./file.c:1032 (may sleep in PREEMPT_RT)'}, 'gfs2_open_common': {'kzalloc() with GFP_NOFS at ./file.c:640 (may sleep in PREEMPT_RT)'}, 'gfs2_evict_inodes': {'cond_resched() at ./ops_fstype.c:1764 (may invoke the scheduler)', 'spin_lock() at ./ops_fstype.c:1749 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_hold': {'mutex_lock() at ./ops_fstype.c:542 (is a sleeping lock)', 'spin_lock() at ./ops_fstype.c:585 (is a sleeping lock on PREEMPT_RT)', 'kzalloc() with GFP_KERNEL at ./ops_fstype.c:566 (may sleep in PREEMPT_RT)'}, 'gfs2_reconfigure': {'spin_lock() at ./ops_fstype.c:1557 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_init_fs_context': {'kmalloc() with GFP_KERNEL at ./ops_fstype.c:1641 (may sleep in PREEMPT_RT)'}, 'gfs2_read_super': {'kmalloc() with GFP_KERNEL at ./ops_fstype.c:223 (may sleep in PREEMPT_RT)'}, 'init_statfs': {'kmalloc() with GFP_NOFS at ./ops_fstype.c:637 (may sleep in PREEMPT_RT)'}, 'init_sbd': {'kzalloc() with GFP_KERNEL at ./ops_fstype.c:78 (may sleep in PREEMPT_RT)'}, 'gfs2_tune_get_i': {'spin_lock() at ./util.h:185 (is a sleeping lock on PREEMPT_RT)'}, '__gfs2_ail_flush': {'spin_lock() at ./glops.c:70 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_glock2inode': {'spin_lock() at ./glops.c:256 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_glock2rgrp': {'spin_lock() at ./glops.c:268 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_quota_cleanup': {'fs_err', 'kvfree', 'LIST_HEAD', 'wait_event_timeout', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_add', 'gfs2_qd_list_dispose', 'spin_lock', 'test_bit', 'list_lru_del_obj', 'atomic_read'}, 'gfs2_quota_init': {'fs_err', 'be64_to_cpu', 'fs_info', 'qd_alloc', '__vmalloc', 'gfs2_metatype_check', 'qd_put', 'be32_to_cpu', 'mark_buffer_dirty', 'spin_lock', 'GFS2_I', 'gfs2_qd_hash', 'kmem_cache_free', 'DIV_ROUND_UP', 'gfs2_check_internal_file_size', 'spin_unlock', 'test_and_set_bit', 'brelse', 'set_bit', 'BUG_ON', 'unlock_buffer', 'memset', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'spin_unlock_bucket', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket', 'gfs2_meta_ra', 'gfs2_get_extent', 'i_size_read', 'make_kqid', 'spin_lock_bucket', 'list_add', 'lock_buffer', 'kzalloc', 'sync_dirty_buffer', 'atomic_inc', 'buffer_dirty'}, 'qd_put': {'test_bit', '__lockref_is_dead', 'lockref_put_or_lock', 'unlikely', 'lockref_mark_dead', 'spin_unlock', 'BUG_ON', 'list_lru_add_obj', 'gfs2_qd_dispose'}, 'slot_put': {'test_and_clear_bit', 'spin_unlock', 'BUG_ON', 'gfs2_assert', 'spin_lock'}, 'bh_get': {'GFS2_I', 'i_blocksize', 'spin_unlock', 'gfs2_meta_read', 'gfs2_metatype_check', 'spin_lock', 'brelse', 'gfs2_iomap_get'}, 'do_glock': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'update_qd', 'cpu_to_be32', 'spin_lock'}, 'do_qc': {'GFS2_I', 'be64_to_cpu', '__qd_hold', 'cpu_to_be64', 'set_bit', 'spin_unlock', 'clear_bit', 'from_kqid', 'gfs2_trans_add_meta', 'slot_hold', 'cpu_to_be32', 'qd_put', 'spin_lock', 'test_bit', 'slot_put'}, 'do_sync': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'gfs2_rg_blocks', 'kmalloc_array', 'spin_lock', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'spin_unlock', 'gfs2_write_calc_reserv', 'gfs2_log_flush', 'kfree', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'set_bit', 'qd2offset', 'gfs2_inplace_release', 'gfs2_inplace_reserve', 'do_qc', 'sort', 'inode_unlock'}, 'gfs2_adjust_quota': {'GFS2_I', 'inode_set_ctime_current', 'be64_to_cpu', 'gfs2_unstuff_dinode', 'cpu_to_be64', 'set_bit', 'be64_add_cpu', 'spin_unlock', 'inode_set_mtime_to_ts', 'gfs2_internal_read', 'gfs2_write_disk_quota', 'i_size_write', 'memset', 'mark_inode_dirty', 'spin_lock', 'gfs2_is_stuffed'}, 'gfs2_quota_get_state': {'GFS2_I', 'list_lru_count', 'memset'}, 'gfs2_set_dqblk': {'gfs2_write_alloc_required', 'gfs2_glock_nq_init', 'be64_to_cpu', 'qd_get', 'gfs2_rg_blocks', 'gfs2_qa_get', 'qd_put', 'GFS2_I', 'gfs2_trans_begin', 'inode_lock', 'clear_bit', 'gfs2_write_calc_reserv', 'gfs2_glock_dq_uninit', 'gfs2_adjust_quota', 'gfs2_trans_end', 'qd2offset', 'update_qd', 'gfs2_inplace_release', 'gfs2_is_stuffed', 'gfs2_qa_put', 'gfs2_inplace_reserve', 'inode_unlock'}, 'gfs2_write_buf_to_page': {'GFS2_I', 'flush_dcache_folio', 'bh_read', 'folio_unlock', 'memcpy_to_folio', 'buffer_mapped', 'gfs2_block_map', 'filemap_grab_folio', 'PTR_ERR', 'buffer_new', 'create_empty_buffers', 'IS_ERR', 'folio_buffers', 'folio_put', 'folio_test_uptodate', 'set_buffer_uptodate', 'gfs2_trans_add_data', 'folio_zero_range'}, 'update_qd': {'GFS2_I', 'qd2offset', 'spin_unlock', 'gfs2_internal_read', 'memset', 'cpu_to_be32', 'spin_lock'}, 'gfs2_qa_get': {'kmem_cache_free', 'kmem_cache_zalloc', 'spin_unlock', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_change': {'qid_eq', 'make_kqid_gid', 'gfs2_assert_withdraw', 'gfs2_assert_warn', 'make_kqid_uid', 'do_qc', 'GFS2_SB'}, 'gfs2_quota_check': {'qid_eq', 'make_kqid_gid', 'gfs2_tune_get', 'be64_to_cpu', 'print_message', 'quota_send_warning', 'spin_unlock', 'test_and_set_bit', 'make_kqid_uid', 'time_after_eq', 'spin_lock', 'test_bit', 'GFS2_SB'}, 'gfs2_quota_hold': {'gfs2_quota_unhold', 'make_kqid_gid', 'qdsb_get', 'gfs2_assert_warn', 'gid_eq', 'make_kqid_uid', 'gfs2_qa_get', 'uid_eq', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_lock': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_dq_uninit', 'set_bit', 'do_glock', 'sort', 'GFS2_SB'}, 'gfs2_quota_unhold': {'gfs2_assert_warn', 'qdsb_put', 'test_bit', 'GFS2_SB', 'gfs2_qa_put'}, 'gfs2_quota_unlock': {'qd_grab_sync', 'gfs2_quota_unhold', 'need_sync', 'bh_get', 'gfs2_glock_dq_uninit', 'qd_ungrab_sync', 'qd_unlock', 'READ_ONCE', 'gfs2_assert_warn', 'test_and_clear_bit', 'spin_unlock', 'do_sync', 'spin_lock', 'GFS2_SB'}, 'gfs2_quota_hash_init': {'INIT_HLIST_BL_HEAD'}, 'qd_alloc': {'kmem_cache_free', 'kmem_cache_zalloc', 'qd2index', 'lockref_init', 'INIT_LIST_HEAD', 'gfs2_glock_get'}, 'gfs2_qd_shrink_scan': {'list_lru_shrink_walk', 'gfs2_qd_list_dispose', 'LIST_HEAD'}, 'gfs2_quota_sync': {'kfree', 'qd_grab_sync', 'bh_get', 'qd_ungrab_sync', 'qd_unlock', 'kcalloc', 'sb_rdonly', 'spin_unlock', 'mutex_unlock', 'WRITE_ONCE', 'do_sync', 'spin_lock', 'mutex_lock'}, 'qd_grab_sync': {'list_move_tail', '__lockref_is_dead', 'set_bit', 'spin_unlock', 'slot_hold', 'spin_lock', 'test_bit'}, 'gfs2_qd_dealloc': {'wake_up', 'atomic_dec_and_test', 'kmem_cache_free', 'container_of'}, 'qd_get': {'gfs2_qd_hash', 'kmem_cache_free', 'rcu_read_unlock', 'qd_alloc', 'spin_unlock', 'rcu_read_lock', 'list_add', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'atomic_inc', 'spin_lock', 'hlist_bl_add_head_rcu', 'gfs2_qd_search_bucket'}, 'gfs2_get_dqblk': {'gfs2_glock_dq_uninit', 'be64_to_cpu', 'qd_get', 'do_glock', 'memset', 'qd_put'}, 'need_sync': {'gfs2_jindex_size', 'be64_to_cpu', 'spin_unlock', 'spin_lock', 'div_s64'}, 'qdsb_get': {'slot_get', 'bh_get', 'qd_get', 'qd_put', 'slot_put'}, 'qdsb_put': {'qd_put', 'bh_put', 'slot_put'}, 'bh_put': {'gfs2_assert', 'spin_lock', 'brelse', 'spin_unlock'}, 'gfs2_qd_dispose': {'list_del', 'hlist_bl_del_rcu', 'gfs2_assert_warn', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'spin_lock_bucket', 'spin_unlock_bucket', 'gfs2_glock_put', 'spin_lock', 'call_rcu'}, 'qd_ungrab_sync': {'clear_bit', 'qd_put', 'slot_put'}, 'qd_unlock': {'gfs2_assert_warn', 'spin_unlock', 'clear_bit', 'qdsb_put', 'spin_lock', 'test_bit'}, 'quotad_error': {'cmpxchg', 'gfs2_withdrawing_or_withdrawn', 'fs_err', 'wake_up'}, 'gfs2_quota_refresh': {'qd_put', 'qd_get', 'do_glock', 'gfs2_glock_dq_uninit'}, 'slot_get': {'spin_lock', 'set_bit', 'find_first_zero_bit', 'spin_unlock'}, 'print_message': {'from_kqid', 'fs_info'}, 'qd2index': {'from_kqid'}, 'quotad_check_timeo': {'fxn', 'gfs2_tune_get_i', 'quotad_error'}, '__qd_hold': {'gfs2_assert'}, 'slot_hold': {'gfs2_assert', 'spin_lock', 'spin_unlock'}, 'gfs2_qd_list_dispose': {'list_del', 'list_first_entry', 'list_empty', 'gfs2_qd_dispose'}, 'gfs2_quotad': {'kthread_should_stop', 'gfs2_tune_get', 'wait_event_freezable_timeout', 'quotad_error', 'gfs2_withdrawing_or_withdrawn', 'min', 'set_freezable', 'quotad_check_timeo', 'gfs2_statfs_sync'}, 'gfs2_write_disk_quota': {'gfs2_write_buf_to_page', 'offset_in_page'}, 'spin_lock_bucket': {'hlist_bl_lock'}, 'spin_unlock_bucket': {'hlist_bl_unlock'}, 'gfs2_qd_hash': {'jhash'}, 'gfs2_qa_put': {'spin_lock', 'kmem_cache_free', 'spin_unlock'}, 'gfs2_qd_isolate': {'lockref_mark_dead', 'spin_unlock', 'spin_trylock', 'list_entry', 'list_lru_isolate_move'}, 'gfs2_qd_search_bucket': {'qid_eq', 'lockref_get_not_dead', 'list_lru_del_obj'}, 'gfs2_qd_shrink_count': {'list_lru_shrink_count', 'vfs_pressure_ratio'}, 'qd2offset': {'qd2index'}, 'sort_qd': {'qid_lt'}, 'gfs2_qd_shrinker_init': {'shrinker_alloc', 'shrinker_register'}, 'gfs2_qd_shrinker_exit': {'shrinker_free'}, 'gfs2_wake_up_statfs': {'wake_up'}, '__gfs2_trans_begin': {'test_bit', 'gfs2_log_release_revokes', 'DIV_ROUND_UP', 'down_read', 'unlikely', 'gfs2_assert_warn', 'gfs2_log_try_reserve', 'gfs2_log_release', 'sb_end_intwrite', 'BUG_ON', 'BUG', 'sb_start_intwrite', 'up_read', 'INIT_LIST_HEAD', 'gfs2_print_trans', 'gfs2_log_reserve', 'databuf_limit'}, 'gfs2_trans_add_meta': {'fs_err', 'cpu_to_be64', 'gfs2_log_lock', 'fs_info', 'gfs2_log_unlock', 'cpu_to_be32', 'gfs2_alloc_bufdata', 'gfs2_assert', 'gfs2_withdrawing_or_withdrawn', 'folio_lock', 'folio_unlock', 'set_bit', 'unlock_buffer', 'gfs2_pin', 'gfs2_assert_withdraw', 'unlikely', 'BUG', 'list_add', 'list_empty', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_revoke': {'BUG_ON', 'list_empty', 'set_bit', 'gfs2_add_revoke'}, 'gfs2_alloc_bufdata': {'kmem_cache_zalloc', 'INIT_LIST_HEAD'}, 'gfs2_trans_begin': {'kmem_cache_zalloc', '__gfs2_trans_begin', 'kmem_cache_free'}, 'gfs2_trans_add_data': {'gfs2_alloc_bufdata', 'gfs2_pin', 'gfs2_log_lock', 'set_bit', 'list_add_tail', 'gfs2_assert', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'buffer_pinned'}, 'gfs2_trans_add_databufs': {'folio_buffers', 'gfs2_trans_add_data', 'set_buffer_uptodate'}, 'gfs2_print_trans': {'fs_warn', 'test_bit'}, 'gfs2_trans_free': {'list_empty', 'gfs2_assert_warn', 'kmem_cache_free'}, 'gfs2_trans_end': {'test_bit', 'gfs2_trans_free', 'gfs2_assert_withdraw', 'gfs2_log_release', 'sb_end_intwrite', 'up_read', 'gfs2_log_release_revokes', 'gfs2_print_trans', 'gfs2_log_flush', 'gfs2_log_commit'}, 'gfs2_trans_remove_revoke': {'list_del_init', 'kmem_cache_free', 'gfs2_assert_withdraw', 'gfs2_log_lock', 'gfs2_glock_remove_revoke', 'gfs2_log_unlock', 'gfs2_log_release_revokes'}, 'gfs2_withdraw': {'wait_for_completion', 'wake_up_bit', 'fs_err', 'strcmp', 'kobject_uevent', 'panic', 'READ_ONCE', 'dump_stack', 'try_cmpxchg', 'unlikely', 'BIT', 'wait_on_bit', 'BUG_ON', 'clear_bit', 'signal_our_withdraw', 'smp_mb__after_atomic'}, 'gfs2_assert_warn_i': {'time_before', 'panic', 'gfs2_tune_get', 'fs_warn', 'dump_stack', 'BUG'}, 'check_journal_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_find_jhead'}, 'signal_our_withdraw': {'fs_warn', 'PTR_ERR', 'gfs2_glock_hold', 'msleep', 'gfs2_holder_reinit', 'GFS2_I', 'wake_up_bit', 'wake_up', 'wait_event_timeout', 'clear_bit', 'gfs2_inode_lookup', 'check_journal_clean', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'set_bit', 'd_mark_dontcache', 'iput', 'wait_on_bit', 'gfs2_glock_put', 'gfs2_glock_dq', 'gfs2_thaw_freeze_initiator', 'mutex_trylock', 'gfs2_ail_drain', 'gfs2_glock_dq_wait', 'gfs2_gl_dq_holders', 'sb_rdonly', 'IS_ERR', 'gfs2_log_is_empty', 'mutex_unlock', 'gfs2_holder_uninit', 'test_bit'}, 'gfs2_consist_inode_i': {'gfs2_lm', 'gfs2_withdraw', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_assert_withdraw_i': {'fs_err', 'dump_stack', 'gfs2_withdrawing_or_withdrawn', 'gfs2_withdraw', 'gfs2_withdraw_delayed'}, 'gfs2_assert_i': {'fs_emerg'}, 'gfs2_freeze_lock_shared': {'gfs2_glock_nq_init', 'fs_err'}, 'gfs2_io_error_bh_i': {'gfs2_withdrawing_or_withdrawn', 'fs_err', 'gfs2_withdraw'}, 'gfs2_lm': {'va_end', 'fs_err', 'test_bit', 'va_start'}, 'gfs2_consist_rgrpd_i': {'sprintf', 'gfs2_withdraw', 'gfs2_lm', 'gfs2_rgrp_dump', 'gfs2_dump_glock'}, 'gfs2_freeze_unlock': {'gfs2_holder_initialized', 'gfs2_glock_dq_uninit'}, 'gfs2_consist_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_io_error_i': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_meta_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_metatype_check_ii': {'gfs2_withdraw', 'gfs2_lm'}, 'gfs2_recover_journal': {'BUG_ON', 'test_and_set_bit', 'wait_on_bit', 'queue_work'}, 'update_statfs_inode': {'GFS2_I', 'gfs2_statfs_change_out', 'mark_buffer_dirty', 'fs_info', 'gfs2_inode_metasync', 'spin_unlock', 'BUG_ON', 'gfs2_statfs_change_in', 'memset', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'foreach_descriptor': {'GFS2_I', 'lops_scan_elements', 'gfs2_replay_read_block', 'gfs2_replay_incr_blk', 'gfs2_metatype_check', 'gfs2_consist_inode', 'be32_to_cpu', 'brelse', 'GFS2_SB', 'get_log_header', 'gfs2_meta_check'}, 'gfs2_recover_func': {'gfs2_glock_nq_init', 'fs_err', 'down_read', 'fs_warn', 'fs_info', 'recover_local_statfs', 'gfs2_log_pointers_init', 'lops_after_scan', 'clean_journal', 'container_of', 'GFS2_I', 'wake_up_bit', 'gfs2_withdrawing_or_withdrawn', 'clear_bit', 'ktime_ms_delta', 'bdev_read_only', 'gfs2_glock_dq_uninit', 'gfs2_recovery_done', 'ktime_get', 'gfs2_glock_nq_num', 'up_read', 'foreach_descriptor', 'gfs2_find_jhead', 'gfs2_jdesc_check', 'lops_before_scan', 'sb_rdonly', 'mutex_unlock', 'smp_mb__after_atomic', 'test_bit', 'GFS2_SB', 'mutex_lock'}, 'gfs2_replay_read_block': {'GFS2_I', 'gfs2_consist_inode', 'gfs2_meta_ra', 'gfs2_get_extent'}, 'clean_journal': {'gfs2_replay_incr_blk', 'GFS2_SB', 'gfs2_write_log_header'}, 'get_log_header': {'__get_log_header', 'brelse', 'GFS2_SB', 'gfs2_replay_read_block'}, 'recover_local_statfs': {'update_statfs_inode', 'GFS2_SB', 'find_local_statfs_inode'}, '__get_log_header': {'crc32', 'crc32c', 'be64_to_cpu', 'cpu_to_be32', 'be32_to_cpu'}, 'gfs2_log_pointers_init': {'gfs2_replay_incr_blk'}, 'gfs2_revoke_clean': {'kfree', 'list_del', 'list_empty', 'list_first_entry'}, 'gfs2_revoke_add': {'list_add', 'kmalloc'}, 'gfs2_recovery_done': {'kobject_uevent_env', 'sprintf'}, 'gfs2_fileattr_set': {'ARRAY_SIZE', 'd_is_special', 'do_gfs2_set_flags', 'fileattr_has_fsx', 'S_ISDIR', 'd_inode'}, 'gfs2_gfsflags_to_fsflags': {'S_ISDIR', 'ARRAY_SIZE'}, 'calc_max_reserv': {'DIV_ROUND_UP', 'gfs2_write_calc_reserv', 'GFS2_SB'}, '__gfs2_fallocate': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'fallocate_chunk', 'gfs2_rg_blocks', 'i_size_write', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'IS_SYNC', 'vfs_fsync_range', 'gfs2_write_calc_reserv', 'gfs2_is_jdata', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'mark_inode_dirty', 'gfs2_inplace_reserve', 'calc_max_reserv', 'file_inode', 'GFS2_SB'}, 'do_flock': {'gfs2_assert_warn', 'msleep', 'spin_lock', 'gfs2_holder_reinit', 'GFS2_I', 'spin_unlock', '__flock_holder_uninit', 'lock_is_write', 'locks_lock_file_wait', 'gfs2_glock_nq', 'gfs2_holder_initialized', 'gfs2_glock_put', 'gfs2_glock_dq', 'IS_SETLKW', 'gfs2_holder_init', 'gfs2_glock_get', 'file_inode', 'mutex_unlock', 'locks_init_lock', 'GFS2_SB', 'mutex_lock'}, 'do_gfs2_set_flags': {'gfs2_glock_nq_init', 'inode_set_ctime_current', 'gfs2_set_inode_flags', 'GFS2_I', 'gfs2_trans_begin', 'gfs2_dinode_out', 'brelse', 'gfs2_log_flush', 'gfs2_glock_dq_uninit', 'truncate_inode_pages', 'gfs2_trans_end', 'gfs2_ordered_del_inode', 'gfs2_permission', 'gfs2_meta_inode_buffer', 'IS_IMMUTABLE', 'gfs2_set_aops', 'filemap_fdatawrite', 'gfs2_trans_add_meta', 'filemap_fdatawait', 'GFS2_SB'}, 'fallocate_chunk': {'GFS2_I', 'sb_issue_zeroout', 'fs_err', 'gfs2_unstuff_dinode', 'gfs2_iomap_alloc', 'unlikely', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_fallocate': {'GFS2_I', 'gfs2_is_jdata', 'gfs2_glock_nq', 'put_write_access', 'file_inode', 'inode_lock', '__gfs2_punch_hole', 'gfs2_holder_init', '__gfs2_fallocate', 'gfs2_holder_uninit', 'inode_newsize_ok', 'gfs2_glock_dq', 'gfs2_rs_deltree', 'get_write_access', 'GFS2_SB', 'inode_unlock'}, 'gfs2_fault': {'GFS2_I', 'gfs2_glock_nq', 'file_inode', 'vmf_fs_error', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'filemap_fault', 'gfs2_holder_init'}, 'gfs2_file_buffered_write': {'gfs2_glock_nq_init', 'fault_in_iov_iter_readable', 'pagefault_disable', 'gfs2_holder_queued', 'GFS2_I', 'iov_iter_count', 'kfree', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'iomap_file_buffered_write', 'gfs2_glock_dq', 'should_fault_in_pages', 'gfs2_holder_init', 'file_inode', 'min', 'pagefault_enable', 'gfs2_holder_uninit', 'GFS2_SB', 'kmalloc'}, 'gfs2_file_direct_read': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'iomap_dio_rw', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_direct_write': {'GFS2_I', 'i_size_read', 'iov_iter_count', 'gfs2_glock_nq', 'fault_in_iov_iter_readable', 'iomap_dio_rw', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_read_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq', 'gfs2_file_direct_read', 'pagefault_disable', 'pagefault_enable', 'fault_in_iov_iter_writeable', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_holder_queued', 'generic_file_read_iter', 'should_fault_in_pages', 'gfs2_holder_init'}, 'gfs2_file_write_iter': {'GFS2_I', 'iov_iter_count', 'gfs2_glock_nq_init', 'file_remove_privs', 'gfs2_glock_dq_uninit', 'gfs2_size_hint', 'file_inode', 'file_update_time', 'gfs2_file_direct_write', 'inode_lock', 'likely', 'unlikely', 'invalidate_mapping_pages', 'inode_unlock', 'gfs2_file_buffered_write', 'generic_write_checks', 'generic_write_sync'}, 'gfs2_fileattr_get': {'GFS2_I', 'gfs2_glock_nq', 'd_is_special', 'fileattr_fill_flags', 'gfs2_holder_uninit', 'gfs2_glock_dq', 'gfs2_gfsflags_to_fsflags', 'gfs2_holder_init', 'd_inode'}, 'gfs2_fsync': {'GFS2_I', 'gfs2_is_jdata', 'file_write_and_wait', 'filemap_fdatawrite_range', 'file_fdatawait_range', 'sync_inode_metadata', 'gfs2_ail_flush'}, 'gfs2_llseek': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_seek_data', 'gfs2_seek_hole', 'generic_file_llseek'}, 'gfs2_lock': {'GFS2_I', 'dlm_posix_unlock', 'lock_is_unlock', 'IS_GETLK', 'gfs2_withdrawing_or_withdrawn', 'dlm_posix_cancel', 'dlm_posix_get', 'dlm_posix_lock', 'GFS2_SB', 'locks_lock_file_wait'}, 'gfs2_mmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'file_accessed', 'IS_NOATIME'}, 'gfs2_open': {'GFS2_I', 'S_ISREG', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_open_common'}, 'gfs2_open_common': {'GFS2_I', 'S_ISREG', 'kfree', 'gfs2_is_jdata', 'generic_file_open', 'gfs2_assert_warn', 'mutex_init', 'kzalloc', 'gfs2_qa_get', 'GFS2_SB'}, 'gfs2_page_mkwrite': {'gfs2_write_alloc_required', 'gfs2_size_hint', 'vmf_fs_error', 'gfs2_rg_blocks', 'folio_pos', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'file_update_time', 'page_folio', 'folio_lock', 'sb_end_pagefault', 'gfs2_write_calc_reserv', 'folio_unlock', 'gfs2_is_jdata', 'gfs2_glock_nq', 'gfs2_unstuff_dinode', 'gfs2_rindex_update', 'gfs2_trans_end', 'set_bit', 'folio_size', 'folio_test_uptodate', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'sb_start_pagefault', 'gfs2_glock_dq', 'folio_mark_dirty', 'gfs2_holder_init', 'gfs2_is_stuffed', 'gfs2_inplace_reserve', 'i_size_read', 'file_inode', 'gfs2_holder_uninit', 'folio_wait_stable', 'gfs2_allocate_folio_backing', 'GFS2_SB'}, 'gfs2_readdir': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_dir_read', 'gfs2_glock_dq_uninit'}, 'gfs2_release': {'GFS2_I', 'kfree', 'gfs2_qa_put', 'gfs2_rs_active', 'gfs2_rs_delete'}, 'gfs2_set_inode_flags': {'GFS2_I', 'is_sxid'}, 'gfs2_size_hint': {'GFS2_I', 'atomic_set', 'file_inode', 'min_t', 'GFS2_SB', 'atomic_read'}, 'gfs2_getlabel': {'file_inode', 'copy_to_user', 'GFS2_SB'}, 'do_unflock': {'gfs2_holder_initialized', 'mutex_unlock', '__flock_holder_uninit', 'gfs2_glock_dq', 'mutex_lock', 'locks_lock_file_wait'}, 'gfs2_compat_ioctl': {'compat_ptr', 'gfs2_ioctl'}, 'gfs2_flock': {'do_unflock', 'lock_is_unlock', 'do_flock'}, 'gfs2_allocate_folio_backing': {'folio_pos', 'gfs2_iomap_alloc'}, 'gfs2_ioctl': {'gfs2_fitrim', 'gfs2_getlabel'}, '__flock_holder_uninit': {'spin_unlock', 'gfs2_holder_uninit', 'gfs2_glock_hold', 'gfs2_glock_put', 'spin_lock'}, 'gfs2_file_splice_write': {'iter_file_splice_write', 'gfs2_size_hint'}, 'should_fault_in_pages': {'iov_iter_count', 'min_t', 'user_backed_iter', 'max', 'offset_in_page'}, 'gfs2_fill_super': {'fs_err', 'gfs2_freeze_lock_shared', 'gfs2_make_fs_rw', 'snprintf', 'gfs2_destroy_threads', 'mapping_set_gfp_mask', 'complete_all', 'gfs2_online_uevent', 'alloc_workqueue', 'destroy_workqueue', 'gfs2_gl_hash_clear', 'gfs2_create_debugfs_file', 'gfs2_statfs_init', 'BIT', 'sb_min_blocksize', 'gfs2_lm_mount', 'sb_dqopt', 'init_threads', 'pr_warn', 'gfs2_aspace', 'gfs2_lm_unmount', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'wait_on_journal', 'new_inode', 'set_bit', 'iput', 'init_per_node', 'gfs2_freeze_unlock', 'init_sbd', 'init_sb', 'set_default_d_op', 'dput', 'init_names', 'gfs2_sys_fs_del', 'sb_rdonly', 'gfs2_sys_fs_add', 'init_locking', 'init_inodes'}, 'gfs2_read_sb': {'do_div', 'fs_err', 'atomic_set', 'gfs2_read_super', 'DIV_ROUND_UP', 'BIT', 'gfs2_assert'}, 'gfs2_tune_init': {'spin_lock_init', 'BIT'}, 'init_sb': {'sb_set_blocksize', 'fs_err', 'dput', 'gfs2_glock_dq_uninit', 'dget', 'BUG', 'gfs2_read_sb', 'gfs2_lookup_root', 'gfs2_glock_nq_num', 'bdev_logical_block_size'}, 'init_names': {'strscpy', 'gfs2_read_super', 'strchr', 'BUILD_BUG_ON'}, 'gfs2_jindex_hold': {'IS_ERR_OR_NULL', 'gfs2_glock_nq_init', 'PTR_ERR', 'list_add_tail', 'spin_lock', 'INIT_LIST_HEAD', 'GFS2_I', 'sprintf', 'spin_unlock', 'gfs2_lookupi', 'kfree', 'gfs2_glock_dq_uninit', 'd_mark_dontcache', 'INIT_WORK', 'gfs2_dir_check', 'mutex_unlock', 'kzalloc', 'gfs2_disk_hash', 'mutex_lock'}, 'init_journal': {'gfs2_jindex_size', 'gfs2_glock_nq_init', 'fs_err', 'atomic_set', 'gfs2_holder_mark_uninitialized', 'gfs2_jindex_hold', 'PTR_ERR', 'gfs2_jindex_free', 'GFS2_I', 'gfs2_map_journal_extents', 'gfs2_others_may_mount', 'gfs2_lookup_meta', 'atomic_read', 'check_journal_clean', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_jdesc_find', 'set_bit', 'iput', 'gfs2_recover_journal', 'uninit_statfs', 'init_statfs', 'gfs2_glock_nq_num', 'INIT_WORK', 'd_inode', 'gfs2_jdesc_check', 'trace_gfs2_log_blocks', 'IS_ERR'}, 'init_per_node': {'GFS2_I', 'gfs2_glock_nq_init', 'fs_err', 'sprintf', 'gfs2_glock_dq_uninit', 'iput', 'PTR_ERR', 'IS_ERR', 'gfs2_lookup_meta', 'd_inode'}, 'init_statfs': {'GFS2_I', 'kfree', 'gfs2_glock_nq_init', 'fs_err', 'sprintf', 'gfs2_glock_dq_uninit', 'free_local_statfs_inodes', 'iput', 'PTR_ERR', 'kmalloc', 'list_add_tail', 'IS_ERR', 'gfs2_meta_inode_buffer', 'gfs2_lookup_meta', 'd_inode'}, 'init_sbd': {'free_sbd', 'atomic_set', 'gfs2_tune_init', 'spin_lock_init', 'set_bit', 'init_completion', 'init_rwsem', 'mutex_init', 'kzalloc', 'alloc_percpu', 'INIT_LIST_HEAD', 'init_waitqueue_head'}, 'gfs2_lookup_root': {'fs_err', 'PTR_ERR', 'IS_ERR', 'gfs2_inode_lookup', 'd_make_root'}, 'gfs2_meta_get_tree': {'dget', 'deactivate_locked_super', 'PTR_ERR', 'sget_fc', 'IS_ERR', 'pr_warn', 'path_put', 'kern_path'}, 'init_inodes': {'fs_err', 'gfs2_clear_rgrpd', 'gfs2_rindex_update', 'iput', 'PTR_ERR', 'IS_ERR', 'init_journal', 'complete_all', 'lockdep_set_class', 'gfs2_lookup_meta', 'd_inode'}, 'init_threads': {'kthread_stop_put', 'fs_err', 'get_task_struct', 'wake_up_process', 'PTR_ERR', 'IS_ERR', 'kthread_create'}, 'gfs2_evict_inodes': {'set_bit', 'iput', 'spin_unlock', 'need_resched', 'atomic_inc', 'cond_resched', 'spin_lock'}, 'gfs2_read_super': {'kfree', 'unlikely', 'gfs2_sb_in', 'pr_warn', 'gfs2_check_sb', 'kmalloc', 'bdev_rw_virt'}, 'gfs2_sb_in': {'memcpy', 'super_set_uuid', 'be32_to_cpu', 'be64_to_cpu'}, 'uninit_statfs': {'iput', 'free_local_statfs_inodes', 'brelse', 'gfs2_glock_dq_uninit'}, 'gfs2_reconfigure': {'errorfc', 'gfs2_make_fs_rw', 'set_bit', 'spin_unlock', 'sync_filesystem', 'clear_bit', 'gfs2_make_fs_ro', 'gfs2_online_uevent', 'strcmp', 'spin_lock'}, 'gfs2_lm_mount': {'strcmp', 'strsep', 'test_and_clear_bit', 'fs_info', 'match_int', 'complete_all', 'match_token', 'pr_info'}, 'gfs2_kill_sb': {'dput', 'set_bit', 'gfs2_evict_inodes', 'gfs2_flush_delete_work', 'shrink_dcache_sb', 'destroy_workqueue', 'gfs2_log_flush', 'kill_block_super'}, 'gfs2_get_tree': {'dget', 'get_tree_bdev', 'dput'}, 'gfs2_check_sb': {'fs_warn', 'ffs', 'pr_warn'}, 'free_sbd': {'kfree', 'free_percpu'}, 'init_locking': {'fs_err', 'gfs2_glock_dq_uninit', 'gfs2_glock_put', 'gfs2_glock_nq_num', 'gfs2_glock_get'}, 'gfs2_others_may_mount': {'kobject_uevent_env', 'fs_info'}, 'gfs2_parse_param': {'strscpy', 'fs_parse', 'invalfc'}, 'gfs2_meta_init_fs_context': {'gfs2_init_fs_context'}, 'gfs2_lm_unmount': {'gfs2_withdrawing_or_withdrawn'}, 'gfs2_fc_free': {'kfree'}, 'gfs2_init_fs_context': {'kmalloc', 'memset'}, 'gfs2_online_uevent': {'kobject_uevent_env', 'sprintf', 'sb_rdonly'}, 'gfs2_destroy_threads': {'kthread_stop_put'}, 'wait_on_journal': {'wait_on_bit'}, 'gfs2_meta_check': {'unlikely', 'be32_to_cpu', 'fs_err'}, 'gfs2_metatype_check_i': {'gfs2_metatype_check_ii', 'unlikely', 'gfs2_meta_check_ii', 'be32_to_cpu'}, 'gfs2_metatype_set': {'cpu_to_be32'}, 'gfs2_withdraw_delayed': {'set_bit'}, 'gfs2_tune_get_i': {'spin_lock', 'spin_unlock'}, 'gfs2_withdraw_in_prog': {'unlikely', 'test_bit'}, 'gfs2_withdrawing': {'unlikely', 'test_bit'}, 'gfs2_withdrawing_or_withdrawn': {'unlikely', 'test_bit'}, 'freeze_go_xmote_bh': {'GFS2_I', 'gfs2_log_pointers_init', 'gfs2_assert_withdraw_delayed', 'test_bit', 'gfs2_find_jhead'}, 'inode_go_inval': {'GFS2_I', 'S_ISREG', 'gfs2_glock2inode', 'truncate_inode_pages', 'gfs2_dir_hash_inval', 'gfs2_glock2aspace', 'set_bit', 'forget_all_cached_acls', 'security_inode_invalidate_secctx', 'gfs2_clear_glop_pending', 'gfs2_log_flush'}, 'gfs2_dinode_in': {'gfs2_set_inode_blocks', 'timespec64_compare', 'be64_to_cpu', 'MKDEV', 'i_size_write', 'gfs2_set_inode_flags', 'gfs2_consist_inode', 'be32_to_cpu', 'S_ISREG', 'inode_set_atime_to_ts', 'GFS2_SB', 'inode_set_ctime', 'inode_wrong_type', 'inode_set_mtime', 'inode_get_atime', 'gfs2_is_stuffed', 'gfs2_set_aops', 'i_uid_write', 'unlikely', 'be16_to_cpu', 'i_gid_write', 'ilog2', 'set_nlink', 'gfs2_max_stuffed_size'}, '__gfs2_ail_flush': {'GLOCK_BUG_ON', 'gfs2_log_lock', 'gfs2_withdrawing', 'gfs2_ail_error', 'spin_unlock', 'gfs2_log_unlock', 'gfs2_withdraw', 'gfs2_trans_add_revoke', 'spin_lock', 'atomic_read'}, 'inode_go_sync': {'gfs2_glock2inode', 'S_ISREG', 'GLOCK_BUG_ON', 'filemap_fdatawrite', 'mapping_set_error', 'gfs2_glock2aspace', 'test_and_clear_bit', 'gfs2_inode_metasync', 'gfs2_ail_empty_gl', 'clear_bit', 'filemap_fdatawait', 'unmap_shared_mapping_range', 'smp_mb__before_atomic', 'gfs2_clear_glop_pending', 'gfs2_log_flush', 'inode_dio_wait'}, 'rgrp_go_sync': {'GLOCK_BUG_ON', 'gfs2_rgrp_metasync', 'gfs2_free_clones', 'test_and_clear_bit', 'gfs2_ail_empty_gl', 'gfs2_glock2rgrp', 'gfs2_log_flush'}, 'inode_go_dump': {'gfs2_print_dbg', 'IF2DT', 'i_size_read'}, 'gfs2_rgrp_metasync': {'filemap_fdatawait_range', 'gfs2_io_error', 'WARN_ON_ONCE', 'filemap_fdatawrite_range', 'gfs2_withdrawing_or_withdrawn', 'gfs2_aspace', 'gfs2_glock2rgrp', 'PAGE_ALIGN', 'mapping_set_error'}, 'rgrp_go_inval': {'gfs2_rgrp_brelse', 'WARN_ON_ONCE', 'truncate_inode_pages_range', 'gfs2_aspace', 'gfs2_glock2rgrp', 'PAGE_ALIGN'}, 'gfs2_ail_empty_gl': {'fs_err', '__gfs2_trans_begin', 'log_flush_wait', 'gfs2_trans_end', 'gfs2_log_lock', 'set_bit', 'list_empty', 'gfs2_log_unlock', 'memset', '__gfs2_ail_flush', 'gfs2_log_flush', 'atomic_read'}, 'gfs2_ail_flush': {'gfs2_trans_begin', 'gfs2_trans_end', '__gfs2_ail_flush', 'gfs2_log_flush', 'atomic_read'}, 'freeze_go_callback': {'deactivate_super', 'queue_work', 'down_read_trylock', 'atomic_inc', 'up_read'}, 'gfs2_inode_refresh': {'gfs2_meta_inode_buffer', 'brelse', 'gfs2_dinode_in'}, 'nondisk_go_callback': {'fs_warn', 'set_bit', 'queue_delayed_work', 'clear_bit', 'test_bit'}, 'gfs2_clear_glop_pending': {'wake_up_bit', 'clear_bit_unlock'}, 'inode_go_unlocked': {'wake_up_bit', 'test_bit', 'clear_bit_unlock'}, 'gfs2_inode_metasync': {'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_io_error', 'filemap_fdatawait'}, 'gfs2_ail_error': {'gfs2_withdraw_delayed', 'gfs2_glock2aspace', 'fs_err', 'gfs2_lm'}, 'inode_go_instantiate': {'gfs2_inode_refresh'}, 'iopen_go_callback': {'test_bit', 'gfs2_queue_try_to_evict', 'sb_rdonly'}, 'gfs2_rgrp_go_dump': {'gfs2_rgrp_dump'}, 'inode_go_held': {'gfs2_truncatei_resume', 'inode_dio_wait'}, 'gfs2_glock2inode': {'spin_lock', 'set_bit', 'spin_unlock'}, 'gfs2_glock2rgrp': {'spin_lock', 'spin_unlock'}} | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}, 'gfs2_write_calc_reserv': {'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'DIV_ROUND_UP'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}, 'gfs2_ail1_wipe': {'spin_lock() at ./meta_io.c:398 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_journal_wipe': {'spin_lock() at ./meta_io.c:463 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}, 'gfs2_write_calc_reserv': {'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'DIV_ROUND_UP'}, 'gfs2_aspace_write_folio': {'folio_unlock', 'buffer_async_write', 'folio_redirty_for_writepage', 'folio_test_locked', 'buffer_mapped', 'mark_buffer_async_write', 'folio_start_writeback', 'test_clear_buffer_dirty', 'trylock_buffer', 'BUG_ON', 'folio_buffers', 'folio_end_writeback', 'unlock_buffer', 'folio_test_writeback', 'lock_buffer', 'submit_bh', 'wbc_to_write_flags'}, 'gfs2_meta_ra': {'gfs2_getbuf', 'gfs2_tune_get', 'buffer_uptodate', 'bh_read_nowait', 'BUG_ON', 'buffer_locked', 'brelse', 'wait_on_buffer', 'bh_readahead'}, 'gfs2_submit_bhs': {'bio_alloc', 'bio_add_folio', 'bh_offset', 'BUG_ON', 'submit_bio'}, 'gfs2_getjdatabuf': {'folio_unlock', 'folio_buffers', 'IS_ERR', 'folio_put', '__filemap_get_folio', 'GFS2_SB', 'get_nth_bh'}, 'gfs2_journal_wipe': {'gfs2_is_jdata', 'gfs2_remove_from_journal', 'gfs2_getbuf', 'gfs2_ail1_wipe', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'gfs2_log_unlock', 'lock_buffer', 'spin_lock', 'brelse', 'GFS2_SB', 'gfs2_getjdatabuf'}, 'gfs2_meta_buffer': {'gfs2_metatype_check', 'gfs2_meta_read', 'brelse', 'GFS2_SB'}, 'gfs2_getbuf': {'folio_unlock', 'map_bh', 'buffer_mapped', 'gfs2_glock2aspace', 'mapping_gfp_mask', 'create_empty_buffers', 'folio_buffers', 'IS_ERR', '__filemap_get_folio', 'folio_put', 'gfs2_aspace', 'get_nth_bh'}, 'gfs2_remove_from_journal': {'gfs2_remove_from_ail', 'list_del_init', 'clear_buffer_dirty', 'kmem_cache_free', 'gfs2_mapping2sbd', 'set_bit', 'trace_gfs2_pin', 'list_empty', 'atomic_dec', 'clear_buffer_uptodate', 'test_clear_buffer_pinned', 'gfs2_trans_add_revoke', 'brelse'}, 'gfs2_meta_read_endio': {'bio_put', 'folio_buffers', 'bh_offset'}, 'gfs2_meta_read': {'gfs2_withdraw_in_prog', 'test_bit', 'gfs2_getbuf', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'unlikely', 'unlock_buffer', 'gfs2_withdrawing_or_withdrawn', 'get_bh', 'gfs2_submit_bhs', 'lock_buffer', 'brelse', 'wait_on_buffer'}, 'gfs2_meta_wait': {'gfs2_withdraw_in_prog', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'gfs2_withdrawing_or_withdrawn', 'test_bit', 'wait_on_buffer'}, 'meta_prep_new': {'clear_buffer_dirty', 'set_buffer_uptodate', 'unlock_buffer', 'lock_buffer', 'cpu_to_be32'}, 'gfs2_aspace_writepages': {'gfs2_aspace_write_folio', 'writeback_iter'}, 'gfs2_meta_new': {'gfs2_getbuf', 'meta_prep_new'}, 'gfs2_ail1_wipe': {'gfs2_remove_from_journal', 'gfs2_log_lock', 'spin_unlock', 'gfs2_log_unlock', 'spin_lock'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}, 'gfs2_ail1_wipe': {'spin_lock() at ./meta_io.c:398 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_journal_wipe': {'spin_lock() at ./meta_io.c:463 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_glock_is_locked_by_me': {'spin_lock() at ./glock.h:155 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}, 'gfs2_write_calc_reserv': {'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'DIV_ROUND_UP'}, 'gfs2_aspace_write_folio': {'folio_unlock', 'buffer_async_write', 'folio_redirty_for_writepage', 'folio_test_locked', 'buffer_mapped', 'mark_buffer_async_write', 'folio_start_writeback', 'test_clear_buffer_dirty', 'trylock_buffer', 'BUG_ON', 'folio_buffers', 'folio_end_writeback', 'unlock_buffer', 'folio_test_writeback', 'lock_buffer', 'submit_bh', 'wbc_to_write_flags'}, 'gfs2_meta_ra': {'gfs2_getbuf', 'gfs2_tune_get', 'buffer_uptodate', 'bh_read_nowait', 'BUG_ON', 'buffer_locked', 'brelse', 'wait_on_buffer', 'bh_readahead'}, 'gfs2_submit_bhs': {'bio_alloc', 'bio_add_folio', 'bh_offset', 'BUG_ON', 'submit_bio'}, 'gfs2_getjdatabuf': {'folio_unlock', 'folio_buffers', 'IS_ERR', 'folio_put', '__filemap_get_folio', 'GFS2_SB', 'get_nth_bh'}, 'gfs2_journal_wipe': {'gfs2_is_jdata', 'gfs2_remove_from_journal', 'gfs2_getbuf', 'gfs2_ail1_wipe', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'gfs2_log_unlock', 'lock_buffer', 'spin_lock', 'brelse', 'GFS2_SB', 'gfs2_getjdatabuf'}, 'gfs2_meta_buffer': {'gfs2_metatype_check', 'gfs2_meta_read', 'brelse', 'GFS2_SB'}, 'gfs2_getbuf': {'folio_unlock', 'map_bh', 'buffer_mapped', 'gfs2_glock2aspace', 'mapping_gfp_mask', 'create_empty_buffers', 'folio_buffers', 'IS_ERR', '__filemap_get_folio', 'folio_put', 'gfs2_aspace', 'get_nth_bh'}, 'gfs2_remove_from_journal': {'gfs2_remove_from_ail', 'list_del_init', 'clear_buffer_dirty', 'kmem_cache_free', 'gfs2_mapping2sbd', 'set_bit', 'trace_gfs2_pin', 'list_empty', 'atomic_dec', 'clear_buffer_uptodate', 'test_clear_buffer_pinned', 'gfs2_trans_add_revoke', 'brelse'}, 'gfs2_meta_read_endio': {'bio_put', 'folio_buffers', 'bh_offset'}, 'gfs2_meta_read': {'gfs2_withdraw_in_prog', 'test_bit', 'gfs2_getbuf', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'unlikely', 'unlock_buffer', 'gfs2_withdrawing_or_withdrawn', 'get_bh', 'gfs2_submit_bhs', 'lock_buffer', 'brelse', 'wait_on_buffer'}, 'gfs2_meta_wait': {'gfs2_withdraw_in_prog', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'gfs2_withdrawing_or_withdrawn', 'test_bit', 'wait_on_buffer'}, 'meta_prep_new': {'clear_buffer_dirty', 'set_buffer_uptodate', 'unlock_buffer', 'lock_buffer', 'cpu_to_be32'}, 'gfs2_aspace_writepages': {'gfs2_aspace_write_folio', 'writeback_iter'}, 'gfs2_meta_new': {'gfs2_getbuf', 'meta_prep_new'}, 'gfs2_ail1_wipe': {'gfs2_remove_from_journal', 'gfs2_log_lock', 'spin_unlock', 'gfs2_log_unlock', 'spin_lock'}, 'gfs2_glock_nq_init': {'gfs2_holder_uninit', 'gfs2_glock_nq', '__gfs2_holder_init'}, 'gfs2_holder_init': {'__gfs2_holder_init'}, 'gfs2_glock2aspace': {'container_of'}, 'gfs2_holder_queued': {'list_empty'}, 'gfs2_glock_is_locked_by_me': {'test_bit', 'spin_lock', 'task_pid', 'spin_unlock'}, 'glock_needs_demote': {'test_bit'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}, 'gfs2_ail1_wipe': {'spin_lock() at ./meta_io.c:398 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_journal_wipe': {'spin_lock() at ./meta_io.c:463 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_glock_is_locked_by_me': {'spin_lock() at ./glock.h:155 (is a sleeping lock on PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}, 'gfs2_write_calc_reserv': {'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'DIV_ROUND_UP'}, 'gfs2_aspace_write_folio': {'folio_unlock', 'buffer_async_write', 'folio_redirty_for_writepage', 'folio_test_locked', 'buffer_mapped', 'mark_buffer_async_write', 'folio_start_writeback', 'test_clear_buffer_dirty', 'trylock_buffer', 'BUG_ON', 'folio_buffers', 'folio_end_writeback', 'unlock_buffer', 'folio_test_writeback', 'lock_buffer', 'submit_bh', 'wbc_to_write_flags'}, 'gfs2_meta_ra': {'gfs2_getbuf', 'gfs2_tune_get', 'buffer_uptodate', 'bh_read_nowait', 'BUG_ON', 'buffer_locked', 'brelse', 'wait_on_buffer', 'bh_readahead'}, 'gfs2_submit_bhs': {'bio_alloc', 'bio_add_folio', 'bh_offset', 'BUG_ON', 'submit_bio'}, 'gfs2_getjdatabuf': {'folio_unlock', 'folio_buffers', 'IS_ERR', 'folio_put', '__filemap_get_folio', 'GFS2_SB', 'get_nth_bh'}, 'gfs2_journal_wipe': {'gfs2_is_jdata', 'gfs2_remove_from_journal', 'gfs2_getbuf', 'gfs2_ail1_wipe', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'gfs2_log_unlock', 'lock_buffer', 'spin_lock', 'brelse', 'GFS2_SB', 'gfs2_getjdatabuf'}, 'gfs2_meta_buffer': {'gfs2_metatype_check', 'gfs2_meta_read', 'brelse', 'GFS2_SB'}, 'gfs2_getbuf': {'folio_unlock', 'map_bh', 'buffer_mapped', 'gfs2_glock2aspace', 'mapping_gfp_mask', 'create_empty_buffers', 'folio_buffers', 'IS_ERR', '__filemap_get_folio', 'folio_put', 'gfs2_aspace', 'get_nth_bh'}, 'gfs2_remove_from_journal': {'gfs2_remove_from_ail', 'list_del_init', 'clear_buffer_dirty', 'kmem_cache_free', 'gfs2_mapping2sbd', 'set_bit', 'trace_gfs2_pin', 'list_empty', 'atomic_dec', 'clear_buffer_uptodate', 'test_clear_buffer_pinned', 'gfs2_trans_add_revoke', 'brelse'}, 'gfs2_meta_read_endio': {'bio_put', 'folio_buffers', 'bh_offset'}, 'gfs2_meta_read': {'gfs2_withdraw_in_prog', 'test_bit', 'gfs2_getbuf', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'unlikely', 'unlock_buffer', 'gfs2_withdrawing_or_withdrawn', 'get_bh', 'gfs2_submit_bhs', 'lock_buffer', 'brelse', 'wait_on_buffer'}, 'gfs2_meta_wait': {'gfs2_withdraw_in_prog', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'gfs2_withdrawing_or_withdrawn', 'test_bit', 'wait_on_buffer'}, 'meta_prep_new': {'clear_buffer_dirty', 'set_buffer_uptodate', 'unlock_buffer', 'lock_buffer', 'cpu_to_be32'}, 'gfs2_aspace_writepages': {'gfs2_aspace_write_folio', 'writeback_iter'}, 'gfs2_meta_new': {'gfs2_getbuf', 'meta_prep_new'}, 'gfs2_ail1_wipe': {'gfs2_remove_from_journal', 'gfs2_log_lock', 'spin_unlock', 'gfs2_log_unlock', 'spin_lock'}, 'gfs2_glock_nq_init': {'gfs2_holder_uninit', 'gfs2_glock_nq', '__gfs2_holder_init'}, 'gfs2_holder_init': {'__gfs2_holder_init'}, 'gfs2_glock2aspace': {'container_of'}, 'gfs2_holder_queued': {'list_empty'}, 'gfs2_glock_is_locked_by_me': {'test_bit', 'spin_lock', 'task_pid', 'spin_unlock'}, 'glock_needs_demote': {'test_bit'}, 'gfs2_get_dentry': {'d_obtain_alias', 'gfs2_lookup_by_inum', 'ERR_PTR'}, 'gfs2_encode_fh': {'GFS2_I', 'cpu_to_be32', 'd_inode'}, 'gfs2_get_name': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'S_ISDIR', 'gfs2_dir_read', 'd_inode'}, 'gfs2_fh_to_dentry': {'be32_to_cpu', 'gfs2_get_dentry'}, 'gfs2_fh_to_parent': {'be32_to_cpu', 'gfs2_get_dentry'}, 'get_name_filldir': {'memcpy', 'container_of'}, 'gfs2_get_parent': {'d_obtain_alias', 'gfs2_lookupi', 'd_inode'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}, 'gfs2_ail1_wipe': {'spin_lock() at ./meta_io.c:398 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_journal_wipe': {'spin_lock() at ./meta_io.c:463 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_glock_is_locked_by_me': {'spin_lock() at ./glock.h:155 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_recover_set': {'spin_lock() at ./sys.c:506 (is a sleeping lock on PREEMPT_RT)', 'wait_for_completion() at ./sys.c:504 (waits for an event and sleeps)'}, 'jid_store': {'spin_lock() at ./sys.c:578 (is a sleeping lock on PREEMPT_RT)'}, 'lkfirst_store': {'spin_lock() at ./sys.c:476 (is a sleeping lock on PREEMPT_RT)'}, 'quota_scale_store': {'spin_lock() at ./sys.c:646 (is a sleeping lock on PREEMPT_RT)'}, 'tune_set': {'spin_lock() at ./sys.c:670 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_sys_fs_add': {'wait_for_completion() at ./sys.c:766 (waits for an event and sleeps)'}, 'gfs2_sys_fs_del': {'wait_for_completion() at ./sys.c:776 (waits for an event and sleeps)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}, 'gfs2_write_calc_reserv': {'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'DIV_ROUND_UP'}, 'gfs2_aspace_write_folio': {'folio_unlock', 'buffer_async_write', 'folio_redirty_for_writepage', 'folio_test_locked', 'buffer_mapped', 'mark_buffer_async_write', 'folio_start_writeback', 'test_clear_buffer_dirty', 'trylock_buffer', 'BUG_ON', 'folio_buffers', 'folio_end_writeback', 'unlock_buffer', 'folio_test_writeback', 'lock_buffer', 'submit_bh', 'wbc_to_write_flags'}, 'gfs2_meta_ra': {'gfs2_getbuf', 'gfs2_tune_get', 'buffer_uptodate', 'bh_read_nowait', 'BUG_ON', 'buffer_locked', 'brelse', 'wait_on_buffer', 'bh_readahead'}, 'gfs2_submit_bhs': {'bio_alloc', 'bio_add_folio', 'bh_offset', 'BUG_ON', 'submit_bio'}, 'gfs2_getjdatabuf': {'folio_unlock', 'folio_buffers', 'IS_ERR', 'folio_put', '__filemap_get_folio', 'GFS2_SB', 'get_nth_bh'}, 'gfs2_journal_wipe': {'gfs2_is_jdata', 'gfs2_remove_from_journal', 'gfs2_getbuf', 'gfs2_ail1_wipe', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'gfs2_log_unlock', 'lock_buffer', 'spin_lock', 'brelse', 'GFS2_SB', 'gfs2_getjdatabuf'}, 'gfs2_meta_buffer': {'gfs2_metatype_check', 'gfs2_meta_read', 'brelse', 'GFS2_SB'}, 'gfs2_getbuf': {'folio_unlock', 'map_bh', 'buffer_mapped', 'gfs2_glock2aspace', 'mapping_gfp_mask', 'create_empty_buffers', 'folio_buffers', 'IS_ERR', '__filemap_get_folio', 'folio_put', 'gfs2_aspace', 'get_nth_bh'}, 'gfs2_remove_from_journal': {'gfs2_remove_from_ail', 'list_del_init', 'clear_buffer_dirty', 'kmem_cache_free', 'gfs2_mapping2sbd', 'set_bit', 'trace_gfs2_pin', 'list_empty', 'atomic_dec', 'clear_buffer_uptodate', 'test_clear_buffer_pinned', 'gfs2_trans_add_revoke', 'brelse'}, 'gfs2_meta_read_endio': {'bio_put', 'folio_buffers', 'bh_offset'}, 'gfs2_meta_read': {'gfs2_withdraw_in_prog', 'test_bit', 'gfs2_getbuf', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'unlikely', 'unlock_buffer', 'gfs2_withdrawing_or_withdrawn', 'get_bh', 'gfs2_submit_bhs', 'lock_buffer', 'brelse', 'wait_on_buffer'}, 'gfs2_meta_wait': {'gfs2_withdraw_in_prog', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'gfs2_withdrawing_or_withdrawn', 'test_bit', 'wait_on_buffer'}, 'meta_prep_new': {'clear_buffer_dirty', 'set_buffer_uptodate', 'unlock_buffer', 'lock_buffer', 'cpu_to_be32'}, 'gfs2_aspace_writepages': {'gfs2_aspace_write_folio', 'writeback_iter'}, 'gfs2_meta_new': {'gfs2_getbuf', 'meta_prep_new'}, 'gfs2_ail1_wipe': {'gfs2_remove_from_journal', 'gfs2_log_lock', 'spin_unlock', 'gfs2_log_unlock', 'spin_lock'}, 'gfs2_glock_nq_init': {'gfs2_holder_uninit', 'gfs2_glock_nq', '__gfs2_holder_init'}, 'gfs2_holder_init': {'__gfs2_holder_init'}, 'gfs2_glock2aspace': {'container_of'}, 'gfs2_holder_queued': {'list_empty'}, 'gfs2_glock_is_locked_by_me': {'test_bit', 'spin_lock', 'task_pid', 'spin_unlock'}, 'glock_needs_demote': {'test_bit'}, 'gfs2_get_dentry': {'d_obtain_alias', 'gfs2_lookup_by_inum', 'ERR_PTR'}, 'gfs2_encode_fh': {'GFS2_I', 'cpu_to_be32', 'd_inode'}, 'gfs2_get_name': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'S_ISDIR', 'gfs2_dir_read', 'd_inode'}, 'gfs2_fh_to_dentry': {'be32_to_cpu', 'gfs2_get_dentry'}, 'gfs2_fh_to_parent': {'be32_to_cpu', 'gfs2_get_dentry'}, 'get_name_filldir': {'memcpy', 'container_of'}, 'gfs2_get_parent': {'d_obtain_alias', 'gfs2_lookupi', 'd_inode'}, 'id_show': {'MAJOR', 'snprintf', 'MINOR'}, 'gfs2_uevent': {'test_bit', 'uuid_is_null', 'add_uevent_var', 'container_of'}, 'status_show': {'snprintf', 'sb_rdonly', 'rwsem_is_locked', 'test_bit', 'atomic_read'}, 'demote_rq_store': {'fs_info', 'sscanf', 'test_and_set_bit', 'gfs2_glock_cb', 'gfs2_glock_put', 'strcmp', 'capable', 'gfs2_glock_get'}, 'freeze_store': {'thaw_super', 'fs_warn', 'kstrtoint', 'freeze_super', 'capable'}, 'quota_refresh_group_store': {'make_kqid', 'gfs2_quota_refresh', 'qid_valid', 'current_user_ns', 'kstrtou32', 'capable'}, 'quota_refresh_user_store': {'make_kqid', 'gfs2_quota_refresh', 'qid_valid', 'current_user_ns', 'kstrtou32', 'capable'}, 'quota_scale_store': {'sscanf', 'spin_lock', 'capable', 'spin_unlock'}, 'quota_sync_store': {'kstrtoint', 'capable', 'gfs2_quota_sync'}, 'statfs_sync_store': {'kstrtoint', 'capable', 'gfs2_statfs_sync'}, 'tune_set': {'spin_unlock', 'spin_lock', 'capable', 'kstrtouint'}, 'withdraw_store': {'kstrtoint', 'gfs2_withdraw', 'capable', 'gfs2_lm'}, 'block_store': {'gfs2_glock_thaw', 'set_bit', 'kstrtoint', 'clear_bit', 'smp_mb__after_atomic'}, 'jid_store': {'wake_up_bit', 'spin_unlock', 'sscanf', 'wait_for_completion_killable', 'clear_bit', 'smp_mb__after_atomic', 'spin_lock', 'test_bit'}, 'gfs2_sbd_release': {'complete', 'container_of'}, 'wdack_store': {'complete', 'kstrtoint', 'strcmp'}, 'wdack_show': {'sprintf', 'completion_done'}, 'gfs2_attr_show': {'container_of'}, 'gfs2_attr_store': {'container_of'}, 'gfs2_sys_fs_add': {'wait_for_completion', 'fs_err', 'kobject_put', 'sprintf', 'sysfs_create_group', 'sysfs_create_link', 'kobject_uevent_env', 'init_completion', 'sb_rdonly', 'kobject_init_and_add', 'sysfs_remove_group', 'disk_to_dev'}, 'gfs2_recover_set': {'wait_for_completion', 'spin_lock', 'gfs2_recover_journal', 'spin_unlock'}, 'recover_store': {'sscanf', 'gfs2_recover_set', 'test_bit'}, 'withdraw_show': {'gfs2_withdrawing_or_withdrawn', 'snprintf'}, 'gfs2_sys_fs_del': {'wait_for_completion', 'sysfs_remove_group', 'kobject_put', 'sysfs_remove_link'}, 'gfs2_sys_init': {'kset_create_and_add'}, 'gfs2_sys_uninit': {'kset_unregister'}, 'freeze_show': {'snprintf'}, 'fsname_show': {'snprintf'}, 'quota_scale_show': {'snprintf'}, 'uuid_show': {'uuid_is_null', 'snprintf'}, 'lkfirst_store': {'spin_unlock', 'sscanf', 'wait_for_completion_killable', 'spin_lock', 'test_bit'}, 'block_show': {'test_bit', 'sprintf'}, 'first_done_show': {'test_bit', 'sprintf'}, 'jid_show': {'sprintf'}, 'lkfirst_show': {'sprintf'}, 'proto_name_show': {'sprintf'}, 'recover_done_show': {'sprintf'}, 'recover_status_show': {'sprintf'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_write_cache_jdata': {'cond_resched() at ./aops.c:336 (may invoke the scheduler)'}, 'adjust_fs_space': {'spin_lock() at ./aops.c:530 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_discard': {'spin_lock() at ./aops.c:596 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_log_lock': {'spin_lock() at ./log.h:32 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_ordered_add_inode': {'spin_lock() at ./log.h:55 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_get_link': {'kzalloc() with GFP_NOFS at ./inode.c:1922 (may sleep in PREEMPT_RT)'}, 'gfs2_ail1_wipe': {'spin_lock() at ./meta_io.c:398 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_journal_wipe': {'spin_lock() at ./meta_io.c:463 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_glock_is_locked_by_me': {'spin_lock() at ./glock.h:155 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_recover_set': {'spin_lock() at ./sys.c:506 (is a sleeping lock on PREEMPT_RT)', 'wait_for_completion() at ./sys.c:504 (waits for an event and sleeps)'}, 'jid_store': {'spin_lock() at ./sys.c:578 (is a sleeping lock on PREEMPT_RT)'}, 'lkfirst_store': {'spin_lock() at ./sys.c:476 (is a sleeping lock on PREEMPT_RT)'}, 'quota_scale_store': {'spin_lock() at ./sys.c:646 (is a sleeping lock on PREEMPT_RT)'}, 'tune_set': {'spin_lock() at ./sys.c:670 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_sys_fs_add': {'wait_for_completion() at ./sys.c:766 (waits for an event and sleeps)'}, 'gfs2_sys_fs_del': {'wait_for_completion() at ./sys.c:776 (waits for an event and sleeps)'}, 'punch_hole': {'cond_resched() at ./bmap.c:1976 (may invoke the scheduler)'}, 'sweep_bh_for_rgrps': {'cond_resched() at ./bmap.c:1605 (may invoke the scheduler)'}, 'gfs2_add_jextent': {'kzalloc() with GFP_NOFS at ./bmap.c:2217 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_buffer_clear_tail': {'BUG_ON', 'memset'}, 'gfs2_buffer_copy_tail': {'BUG_ON', 'memcpy', 'memset'}, 'gfs2_mapping2sbd': {'container_of'}, 'gfs2_meta_inode_buffer': {'gfs2_meta_buffer'}, 'gfs2_buffer_clear': {'memset'}, 'gfs2_quota_lock_check': {'gfs2_quota_check', 'gfs2_quota_lock', 'gfs2_quota_unlock', 'GFS2_SB', 'capable'}, '__gfs2_jdata_write_folio': {'GFS2_I', 'gfs2_write_jdata_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_clear_checked', 'folio_test_checked', 'gfs2_trans_add_databufs'}, 'gfs2_invalidate_folio': {'folio_test_locked', 'folio_size', 'BUG_ON', 'folio_buffers', 'gfs2_discard', 'folio_clear_checked', 'filemap_release_folio', 'GFS2_SB'}, 'gfs2_jdata_writeback': {'GFS2_I', 'folio_unlock', '__gfs2_jdata_write_folio', 'folio_redirty_for_writepage', 'gfs2_assert_withdraw', 'BUG_ON', 'folio_test_checked', 'writeback_iter', 'GFS2_SB'}, 'gfs2_write_jdata_batch': {'folio_unlock', 'gfs2_trans_begin', '__gfs2_jdata_write_folio', 'folio_clear_dirty_for_io', 'gfs2_trans_end', 'folio_batch_count', 'inode_to_bdi', 'unlikely', 'folio_size', 'BUG_ON', 'folio_test_dirty', 'folio_test_writeback', 'folio_lock', 'folio_next_index', 'folio_wait_writeback', 'trace_wbc_writepage', 'GFS2_SB'}, 'adjust_fs_space': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_ri_total', 'gfs2_statfs_change', 'fs_warn', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse', 'GFS2_SB'}, 'gfs2_bmap': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'iomap_bmap', 'gfs2_is_stuffed'}, 'gfs2_jdata_writepages': {'GFS2_I', 'gfs2_write_cache_jdata', 'GFS2_SB', 'gfs2_log_flush'}, 'gfs2_read_folio': {'GFS2_I', 'i_blocksize', 'gfs2_is_jdata', 'folio_buffers', 'gfs2_withdrawing_or_withdrawn', 'mpage_read_folio', 'stuffed_read_folio', 'GFS2_SB', 'gfs2_is_stuffed', 'iomap_read_folio'}, 'gfs2_readahead': {'GFS2_I', 'gfs2_is_jdata', 'iomap_readahead', 'mpage_readahead', 'gfs2_is_stuffed'}, 'gfs2_set_aops': {'GFS2_I', 'gfs2_is_jdata'}, 'gfs2_internal_read': {'read_cache_folio', 'PTR_ERR', 'folio_size', 'IS_ERR', 'folio_put', 'memcpy_from_folio', 'min', 'folio_next_index', 'folio_pos'}, 'gfs2_release_folio': {'list_del_init', 'kmem_cache_free', 'buffer_dirty', 'gfs2_log_lock', 'gfs2_assert_warn', 'WARN_ON', 'folio_buffers', 'list_empty', 'gfs2_log_unlock', 'try_to_free_buffers', 'gfs2_mapping2sbd', 'buffer_pinned', 'atomic_read'}, 'gfs2_write_jdata_folio': {'i_size_read', 'folio_size', '__block_write_full_folio', 'offset_in_folio', 'folio_pos', 'folio_zero_segment'}, 'gfs2_jdata_dirty_folio': {'block_dirty_folio', 'folio_set_checked'}, 'stuffed_read_folio': {'i_size_read', 'folio_end_read', 'unlikely', 'folio_fill_tail', 'gfs2_meta_inode_buffer', 'brelse'}, 'gfs2_get_block_noalloc': {'gfs2_block_map', 'buffer_mapped'}, 'gfs2_discard': {'clear_buffer_mapped', 'clear_buffer_dirty', 'list_del_init', 'gfs2_remove_from_journal', 'clear_buffer_req', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'list_empty', 'gfs2_log_unlock', 'lock_buffer', 'clear_buffer_new', 'spin_lock', 'buffer_pinned'}, 'gfs2_write_cache_jdata': {'gfs2_write_jdata_batch', 'folio_batch_init', 'filemap_get_folios_tag', 'tag_pages_for_writeback', 'folio_batch_release', 'cond_resched'}, 'gfs2_writepages': {'iomap_writepages', 'set_bit', 'gfs2_mapping2sbd'}, 'gfs2_ordered_add_inode': {'gfs2_is_jdata', 'gfs2_is_ordered', 'spin_unlock', 'list_add', 'list_empty', 'spin_lock', 'GFS2_SB'}, 'gfs2_log_lock': {'spin_lock'}, 'gfs2_log_unlock': {'spin_unlock'}, 'gfs2_atomic_open': {'gfs2_create_inode', 'd_in_lookup', 'dput', 'finish_no_open', 'PTR_ERR', 'BUG_ON', 'IS_ERR', '__gfs2_lookup', 'd_really_is_positive'}, 'gfs2_inode_lookup': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_instantiate', 'GFS2_I', 'DT2IF', 'glock_set_object', 'gfs2_set_iop', 'gfs2_inode_already_deleted', 'gfs2_glock_dq_uninit', 'inode_set_atime', 'gfs2_holder_initialized', 'glock_clear_object', 'iget5_locked', 'set_bit', 'iput', 'ERR_PTR', 'unlock_new_inode', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'gfs2_glock_get', 'unlikely', 'iget_failed', 'gfs2_check_blk_type', 'inode_get_atime_sec', 'GFS2_SB'}, '__gfs2_lookup': {'GFS2_I', 'S_ISREG', 'd_add', 'gfs2_glock_nq_init', 'dput', 'gfs2_glock_dq_uninit', 'iput', 'IS_ERR', 'ERR_PTR', 'finish_open', 'd_splice_alias', 'ERR_CAST', 'gfs2_lookupi'}, 'gfs2_get_link': {'GFS2_I', 'i_size_read', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_holder_init', 'IS_ERR', 'ERR_PTR', 'gfs2_holder_uninit', 'kzalloc', 'set_delayed_call', 'memcpy', 'gfs2_meta_inode_buffer', 'brelse', 'gfs2_consist_inode'}, 'gfs2_lookup_by_inum': {'GFS2_I', 'iput', 'IS_ERR', 'ERR_PTR', 'gfs2_inode_lookup'}, 'gfs2_lookup_meta': {'IS_ERR_OR_NULL', 'mapping_set_gfp_mask', 'ERR_PTR', 'gfs2_lookupi', 'gfs2_str2qstr'}, 'gfs2_lookupi': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_dir_search', 'igrab', 'PTR_ERR', 'memcmp', 'IS_ERR', 'ERR_PTR', 'gfs2_permission', 'd_inode'}, 'gfs2_mkdir': {'GFS2_I', 'gfs2_create_inode', 'ERR_PTR', 'gfs2_max_stuffed_size'}, 'gfs2_init_dir': {'gfs2_qstr2dirent', 'cpu_to_be16', 'gfs2_inum_out', 'GFS2_DIRENT_SIZE'}, 'gfs2_init_xattr': {'gfs2_buffer_clear_tail', 'GFS2_EA_BH2FIRST', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'cpu_to_be32', 'brelse', 'GFS2_SB'}, 'gfs2_create_inode': {'IS_ERR_OR_NULL', 'gfs2_set_inode_blocks', 'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_tune_get', 'fs_warn', 'gfs2_dir_search', 'PTR_ERR', 'insert_inode_locked4', 'check_and_update_goal', 'gfs2_set_inode_flags', 'd_instantiate', 'gfs2_qa_get', 'gfs2_rs_deltree', 'gfs2_dinode_dealloc', 'posix_acl_create', 'GFS2_I', 'S_ISREG', 'gfs2_trans_begin', 'finish_no_open', 'gfs2_dir_no_add', 'glock_set_object', 'clear_bit', 'create_ok', 'gfs2_set_iop', 'gfs2_diradd_alloc_required', 'posix_acl_release', 'simple_inode_init_ts', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_init_xattr', 'glock_clear_object', 'iput', 'new_inode', '__gfs2_set_acl', 'init_dinode', 'finish_open', 'unlock_new_inode', 'S_ISDIR', 'gfs2_glock_put', 'gfs2_cancel_delete_work', 'mark_inode_dirty', 'munge_mode_uid_gid', 'security_inode_init_security', 'd_inode', 'gfs2_glock_get', 'gfs2_qa_put', 'alloc_dinode', 'clear_nlink', 'gfs2_set_aops', 'link_dinode', 'IS_ERR', 'gfs2_ea_dealloc', 'iget_failed', 'set_nlink', 'GFS2_SB'}, 'gfs2_exchange': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'IF2DT', 'gfs2_holder_queued', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_unlink_ok', 'drop_nlink', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'update_moved_ino', 'gfs2_permission', 'gfs2_glock_dq', 'S_ISDIR', 'mark_inode_dirty', 'gfs2_holder_init', 'gfs2_dir_mvino', 'gfs2_holder_uninit', 'GFS2_SB', 'gfs2_glock_async_wait'}, 'gfs2_fiemap': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_fiemap', 'inode_lock_shared'}, 'gfs2_getattr': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'generic_fillattr', 'd_inode'}, 'gfs2_link': {'inode_set_ctime_current', 'gfs2_dir_add', 'd_instantiate', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'inc_nlink', 'gfs2_dir_no_add', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'brelse', 'gfs2_glock_nq', 'gfs2_trans_end', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_meta_inode_buffer', 'mark_inode_dirty', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'ihold', 'IS_IMMUTABLE', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_trans_add_meta', 'IS_APPEND', 'GFS2_SB'}, 'gfs2_permission': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'IS_IMMUTABLE', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'rcu_dereference_check', 'unlikely', 'WARN_ON_ONCE', 'generic_permission'}, 'gfs2_rename': {'gfs2_glock_nq_init', 'gfs2_holder_mark_uninitialized', 'gfs2_dir_add', 'gfs2_qa_get', 'gfs2_holder_queued', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_dir_no_add', 'gfs2_unlink_ok', 'gfs2_trans_da_blks', 'gfs2_diradd_alloc_required', 'd_really_is_positive', 'gfs2_glock_nq', 'gfs2_glock_dq_uninit', 'gfs2_ok_to_move', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_dir_del', 'update_moved_ino', 'gfs2_unlink_inode', 'gfs2_permission', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_glock_dq', 'S_ISDIR', 'gfs2_holder_init', 'd_inode', 'gfs2_inplace_reserve', 'gfs2_qa_put', 'gfs2_dir_check', 'gfs2_holder_uninit', 'gfs2_consist_inode', 'gfs2_glock_async_wait'}, 'gfs2_seek_data': {'GFS2_I', 'iomap_seek_data', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_seek_hole': {'GFS2_I', 'gfs2_glock_nq_init', 'inode_unlock_shared', 'gfs2_glock_dq_uninit', 'iomap_seek_hole', 'vfs_setpos', 'inode_lock_shared'}, 'gfs2_setattr': {'GFS2_I', 'setattr_prepare', 'gfs2_glock_nq_init', 'may_setattr', 'gfs2_glock_dq_uninit', 'gfs2_setattr_size', 'gfs2_qa_put', 'gfs2_setattr_simple', 'posix_acl_chmod', 'setattr_chown', 'gfs2_qa_get', 'mark_inode_dirty', 'd_inode'}, 'gfs2_symlink': {'GFS2_I', 'gfs2_create_inode', 'gfs2_max_stuffed_size', 'strlen'}, 'gfs2_unlink': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq', 'gfs2_blk2rgrpd', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_unlink_inode', 'gfs2_glock_dq', 'gfs2_holder_init', 'gfs2_unlink_ok', 'gfs2_holder_uninit', 'S_ISDIR', 'GFS2_SB', 'd_inode'}, 'gfs2_unlink_inode': {'GFS2_I', 'clear_nlink', 'inode_set_ctime_current', 'gfs2_unlink_di', 'gfs2_dir_del', 'S_ISDIR', 'mark_inode_dirty', 'drop_nlink', 'd_inode'}, 'gfs2_update_time': {'GFS2_I', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_nq', 'gfs2_glock_dq', 'generic_update_time', 'gfs2_holder_reinit'}, 'iget_set': {'GFS2_I'}, 'iget_test': {'GFS2_I'}, 'setattr_chown': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_get_inode_blocks', 'gfs2_rindex_update', 'gfs2_trans_end', 'uid_eq', 'gfs2_setattr_simple', 'gid_eq', 'gfs2_quota_check', 'gfs2_quota_change', 'gfs2_quota_lock', 'gfs2_qa_get', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_qa_put'}, 'alloc_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_alloc_blocks', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_quota_unlock', 'GFS2_SB'}, 'gfs2_dinode_dealloc': {'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_trans_begin', 'GFS2_SB', 'gfs2_blk2rgrpd', 'gfs2_glock_dq_uninit', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_final_release_pages', 'gfs2_consist_inode', 'gfs2_free_di'}, 'gfs2_set_iop': {'S_ISREG', 'S_ISLNK', 'init_special_inode', 'gfs2_localflocks', 'S_ISDIR', 'GFS2_SB'}, 'gfs2_setattr_simple': {'__gfs2_setattr_simple', 'gfs2_trans_end', 'gfs2_trans_begin', 'GFS2_SB'}, 'link_dinode': {'gfs2_inplace_reserve', 'gfs2_trans_begin', 'gfs2_dir_add', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_trans_da_blks', 'gfs2_quota_unlock', 'GFS2_SB'}, 'munge_mode_uid_gid': {'current_fsuid', 'S_ISDIR', 'uid_eq', 'current_fsgid', 'GFS2_SB'}, 'gfs2_unlink_ok': {'current_fsuid', 'IS_IMMUTABLE', 'uid_eq', 'gfs2_dir_check', 'gfs2_permission', 'IS_APPEND', 'capable'}, 'gfs2_ok_to_move': {'igrab', 'PTR_ERR', 'iput', 'IS_ERR', 'gfs2_lookupi', 'd_inode'}, 'create_ok': {'S_ISDIR', 'gfs2_permission'}, 'gfs2_lookup': {'__gfs2_lookup'}, 'gfs2_initxattrs': {'__gfs2_xattr_set'}, 'gfs2_final_release_pages': {'truncate_inode_pages', 'gfs2_glock2aspace', 'unlikely', 'clear_bit', 'atomic_read'}, 'init_dinode': {'gfs2_buffer_clear_tail', 'iminor', 'imajor', 'gfs2_init_dir', 'set_buffer_uptodate', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_new', 'memset', 'cpu_to_be32', 'brelse', 'memcpy'}, 'gfs2_create': {'gfs2_create_inode'}, 'gfs2_mknod': {'gfs2_create_inode'}, 'update_moved_ino': {'gfs2_dir_mvino', 'inode_set_ctime_current', 'mark_inode_dirty_sync'}, 'gfs2_rename2': {'gfs2_exchange', 'gfs2_rename'}, 'gfs2_trans_da_blks': {'gfs2_rg_blocks'}, '__gfs2_setattr_simple': {'mark_inode_dirty', 'setattr_copy'}, 'gfs2_rs_active': {'RB_EMPTY_NODE'}, 'gfs2_write_calc_reserv': {'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'DIV_ROUND_UP'}, 'gfs2_aspace_write_folio': {'folio_unlock', 'buffer_async_write', 'folio_redirty_for_writepage', 'folio_test_locked', 'buffer_mapped', 'mark_buffer_async_write', 'folio_start_writeback', 'test_clear_buffer_dirty', 'trylock_buffer', 'BUG_ON', 'folio_buffers', 'folio_end_writeback', 'unlock_buffer', 'folio_test_writeback', 'lock_buffer', 'submit_bh', 'wbc_to_write_flags'}, 'gfs2_meta_ra': {'gfs2_getbuf', 'gfs2_tune_get', 'buffer_uptodate', 'bh_read_nowait', 'BUG_ON', 'buffer_locked', 'brelse', 'wait_on_buffer', 'bh_readahead'}, 'gfs2_submit_bhs': {'bio_alloc', 'bio_add_folio', 'bh_offset', 'BUG_ON', 'submit_bio'}, 'gfs2_getjdatabuf': {'folio_unlock', 'folio_buffers', 'IS_ERR', 'folio_put', '__filemap_get_folio', 'GFS2_SB', 'get_nth_bh'}, 'gfs2_journal_wipe': {'gfs2_is_jdata', 'gfs2_remove_from_journal', 'gfs2_getbuf', 'gfs2_ail1_wipe', 'gfs2_log_lock', 'spin_unlock', 'unlock_buffer', 'gfs2_log_unlock', 'lock_buffer', 'spin_lock', 'brelse', 'GFS2_SB', 'gfs2_getjdatabuf'}, 'gfs2_meta_buffer': {'gfs2_metatype_check', 'gfs2_meta_read', 'brelse', 'GFS2_SB'}, 'gfs2_getbuf': {'folio_unlock', 'map_bh', 'buffer_mapped', 'gfs2_glock2aspace', 'mapping_gfp_mask', 'create_empty_buffers', 'folio_buffers', 'IS_ERR', '__filemap_get_folio', 'folio_put', 'gfs2_aspace', 'get_nth_bh'}, 'gfs2_remove_from_journal': {'gfs2_remove_from_ail', 'list_del_init', 'clear_buffer_dirty', 'kmem_cache_free', 'gfs2_mapping2sbd', 'set_bit', 'trace_gfs2_pin', 'list_empty', 'atomic_dec', 'clear_buffer_uptodate', 'test_clear_buffer_pinned', 'gfs2_trans_add_revoke', 'brelse'}, 'gfs2_meta_read_endio': {'bio_put', 'folio_buffers', 'bh_offset'}, 'gfs2_meta_read': {'gfs2_withdraw_in_prog', 'test_bit', 'gfs2_getbuf', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'unlikely', 'unlock_buffer', 'gfs2_withdrawing_or_withdrawn', 'get_bh', 'gfs2_submit_bhs', 'lock_buffer', 'brelse', 'wait_on_buffer'}, 'gfs2_meta_wait': {'gfs2_withdraw_in_prog', 'buffer_uptodate', 'gfs2_io_error_bh_wd', 'gfs2_withdrawing_or_withdrawn', 'test_bit', 'wait_on_buffer'}, 'meta_prep_new': {'clear_buffer_dirty', 'set_buffer_uptodate', 'unlock_buffer', 'lock_buffer', 'cpu_to_be32'}, 'gfs2_aspace_writepages': {'gfs2_aspace_write_folio', 'writeback_iter'}, 'gfs2_meta_new': {'gfs2_getbuf', 'meta_prep_new'}, 'gfs2_ail1_wipe': {'gfs2_remove_from_journal', 'gfs2_log_lock', 'spin_unlock', 'gfs2_log_unlock', 'spin_lock'}, 'gfs2_glock_nq_init': {'gfs2_holder_uninit', 'gfs2_glock_nq', '__gfs2_holder_init'}, 'gfs2_holder_init': {'__gfs2_holder_init'}, 'gfs2_glock2aspace': {'container_of'}, 'gfs2_holder_queued': {'list_empty'}, 'gfs2_glock_is_locked_by_me': {'test_bit', 'spin_lock', 'task_pid', 'spin_unlock'}, 'glock_needs_demote': {'test_bit'}, 'gfs2_get_dentry': {'d_obtain_alias', 'gfs2_lookup_by_inum', 'ERR_PTR'}, 'gfs2_encode_fh': {'GFS2_I', 'cpu_to_be32', 'd_inode'}, 'gfs2_get_name': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'S_ISDIR', 'gfs2_dir_read', 'd_inode'}, 'gfs2_fh_to_dentry': {'be32_to_cpu', 'gfs2_get_dentry'}, 'gfs2_fh_to_parent': {'be32_to_cpu', 'gfs2_get_dentry'}, 'get_name_filldir': {'memcpy', 'container_of'}, 'gfs2_get_parent': {'d_obtain_alias', 'gfs2_lookupi', 'd_inode'}, 'id_show': {'MAJOR', 'snprintf', 'MINOR'}, 'gfs2_uevent': {'test_bit', 'uuid_is_null', 'add_uevent_var', 'container_of'}, 'status_show': {'snprintf', 'sb_rdonly', 'rwsem_is_locked', 'test_bit', 'atomic_read'}, 'demote_rq_store': {'fs_info', 'sscanf', 'test_and_set_bit', 'gfs2_glock_cb', 'gfs2_glock_put', 'strcmp', 'capable', 'gfs2_glock_get'}, 'freeze_store': {'thaw_super', 'fs_warn', 'kstrtoint', 'freeze_super', 'capable'}, 'quota_refresh_group_store': {'make_kqid', 'gfs2_quota_refresh', 'qid_valid', 'current_user_ns', 'kstrtou32', 'capable'}, 'quota_refresh_user_store': {'make_kqid', 'gfs2_quota_refresh', 'qid_valid', 'current_user_ns', 'kstrtou32', 'capable'}, 'quota_scale_store': {'sscanf', 'spin_lock', 'capable', 'spin_unlock'}, 'quota_sync_store': {'kstrtoint', 'capable', 'gfs2_quota_sync'}, 'statfs_sync_store': {'kstrtoint', 'capable', 'gfs2_statfs_sync'}, 'tune_set': {'spin_unlock', 'spin_lock', 'capable', 'kstrtouint'}, 'withdraw_store': {'kstrtoint', 'gfs2_withdraw', 'capable', 'gfs2_lm'}, 'block_store': {'gfs2_glock_thaw', 'set_bit', 'kstrtoint', 'clear_bit', 'smp_mb__after_atomic'}, 'jid_store': {'wake_up_bit', 'spin_unlock', 'sscanf', 'wait_for_completion_killable', 'clear_bit', 'smp_mb__after_atomic', 'spin_lock', 'test_bit'}, 'gfs2_sbd_release': {'complete', 'container_of'}, 'wdack_store': {'complete', 'kstrtoint', 'strcmp'}, 'wdack_show': {'sprintf', 'completion_done'}, 'gfs2_attr_show': {'container_of'}, 'gfs2_attr_store': {'container_of'}, 'gfs2_sys_fs_add': {'wait_for_completion', 'fs_err', 'kobject_put', 'sprintf', 'sysfs_create_group', 'sysfs_create_link', 'kobject_uevent_env', 'init_completion', 'sb_rdonly', 'kobject_init_and_add', 'sysfs_remove_group', 'disk_to_dev'}, 'gfs2_recover_set': {'wait_for_completion', 'spin_lock', 'gfs2_recover_journal', 'spin_unlock'}, 'recover_store': {'sscanf', 'gfs2_recover_set', 'test_bit'}, 'withdraw_show': {'gfs2_withdrawing_or_withdrawn', 'snprintf'}, 'gfs2_sys_fs_del': {'wait_for_completion', 'sysfs_remove_group', 'kobject_put', 'sysfs_remove_link'}, 'gfs2_sys_init': {'kset_create_and_add'}, 'gfs2_sys_uninit': {'kset_unregister'}, 'freeze_show': {'snprintf'}, 'fsname_show': {'snprintf'}, 'quota_scale_show': {'snprintf'}, 'uuid_show': {'uuid_is_null', 'snprintf'}, 'lkfirst_store': {'spin_unlock', 'sscanf', 'wait_for_completion_killable', 'spin_lock', 'test_bit'}, 'block_show': {'test_bit', 'sprintf'}, 'first_done_show': {'test_bit', 'sprintf'}, 'jid_show': {'sprintf'}, 'lkfirst_show': {'sprintf'}, 'proto_name_show': {'sprintf'}, 'recover_done_show': {'sprintf'}, 'recover_status_show': {'sprintf'}, 'gfs2_unstuffer_folio': {'i_size_read', 'folio_mark_uptodate', 'gfs2_is_jdata', 'map_bh', 'buffer_mapped', 'kmap_local_folio', 'BIT', 'folio_size', 'create_empty_buffers', 'folio_buffers', 'folio_test_uptodate', 'gfs2_ordered_add_inode', 'kunmap_local', 'set_buffer_uptodate', 'memset', 'gfs2_trans_add_data', 'folio_mark_dirty', 'memcpy'}, '__gfs2_iomap_alloc': {'metapath_branch_start', 'cpu_to_be64', 'down_write', 'GFS2_I', 'gfs2_buffer_clear_tail', 'gfs2_dinode_out', 'metapointer', 'up_write', 'brelse', 'gfs2_buffer_copy_tail', 'gfs2_add_inode_blocks', 'gfs2_is_jdata', 'gfs2_alloc_blocks', 'BUG_ON', 'gfs2_indirect_init', 'metapath_dibh', 'gfs2_trans_remove_revoke', 'gfs2_trans_add_meta', 'GFS2_SB'}, '__gfs2_punch_hole': {'i_blocksize', 'truncate_pagecache_range', 'round_down', 'gfs2_block_zero_range', 'round_up', 'GFS2_I', 'gfs2_trans_begin', 'punch_hole', 'file_update_time', 'gfs2_journaled_truncate_range', 'gfs2_is_jdata', 'gfs2_trans_end', 'BUG_ON', 'filemap_write_and_wait_range', 'mark_inode_dirty', 'gfs2_is_stuffed', 'file_inode', 'GFS2_SB', 'stuffed_zero_range'}, 'gfs2_block_zero_range': {'BUG_ON', 'min', 'iomap_zero_range'}, 'gfs2_indirect_init': {'gfs2_buffer_clear_tail', 'cpu_to_be64', 'BUG_ON', 'gfs2_metatype_set', 'gfs2_trans_add_meta', 'gfs2_meta_new'}, 'gfs2_setattr_size': {'GFS2_I', 'S_ISREG', 'do_shrink', 'do_grow', 'inode_dio_wait', 'BUG_ON', 'gfs2_rs_delete', 'inode_newsize_ok', 'gfs2_qa_get', 'gfs2_qa_put'}, 'gfs2_walk_metadata': {'GFS2_I', 'do_div', 'BUG_ON', 'fillup_metapath', 'walker', 'DIV_ROUND_UP_ULL', 'brelse', 'GFS2_SB'}, 'gfs2_write_alloc_required': {'GFS2_I', 'i_size_read', 'buffer_mapped', 'gfs2_block_map', 'gfs2_max_stuffed_size', 'BUG_ON', 'gfs2_is_dir', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_iomap_get_folio': {'GFS2_I', 'gfs2_trans_begin', 'i_blocksize', 'gfs2_is_jdata', 'gfs2_trans_end', 'IS_ERR', 'iomap_get_folio', 'ERR_PTR', 'GFS2_SB', 'gfs2_is_stuffed'}, '__gfs2_iomap_get': {'GFS2_I', 'i_size_read', 'lookup_metapath', 'find_metapath', 'down_read', 'be64_to_cpu', 'gfs2_extent_length', 'gfs2_max_stuffed_size', 'gfs2_hole_size', 'metapointer', 'gfs2_meta_inode_buffer', 'gfs2_alloc_size', 'up_read', 'GFS2_SB', 'gfs2_is_stuffed'}, 'do_grow': {'inode_set_ctime_current', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'GFS2_SB', 'inode_set_mtime_to_ts', 'gfs2_dinode_out', 'brelse', 'gfs2_is_jdata', 'gfs2_unstuff_dinode', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_meta_inode_buffer', 'gfs2_is_stuffed', 'gfs2_inplace_reserve', 'truncate_setsize', 'gfs2_trans_add_meta', 'gfs2_max_stuffed_size'}, 'do_shrink': {'GFS2_I', 'punch_hole', 'trunc_end', 'trunc_start', 'gfs2_is_stuffed'}, 'gfs2_alloc_size': {'GFS2_I', 'metapointer', 'metaend', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_block_map': {'GFS2_I', 'clear_buffer_boundary', 'clear_buffer_mapped', 'map_bh', 'gfs2_iomap_alloc', 'set_buffer_new', 'trace_gfs2_bmap', 'set_buffer_boundary', 'clear_buffer_new', 'gfs2_iomap_get'}, 'gfs2_iomap_begin': {'GFS2_I', '__gfs2_iomap_get', 'gfs2_is_jdata', 'trace_gfs2_iomap_end', 'gfs2_iomap_begin_write', 'release_metapath', 'trace_gfs2_iomap_start'}, 'gfs2_iomap_begin_write': {'__gfs2_iomap_get', '__gfs2_iomap_alloc', 'gfs2_rg_blocks', 'gfs2_quota_unlock', 'GFS2_I', 'gfs2_trans_begin', 'punch_hole', 'GFS2_SB', '__mark_inode_dirty', 'gfs2_write_calc_reserv', 'gfs2_is_jdata', 'gfs2_unstuff_dinode', 'gfs2_trans_end', 'gfs2_inplace_release', 'gfs2_quota_lock_check', 'gfs2_is_stuffed', 'gfs2_inplace_reserve', 'release_metapath', 'gfs2_max_stuffed_size'}, 'gfs2_iomap_end': {'GFS2_I', 'i_blocksize', 'punch_hole', 'unlikely', 'set_bit', 'truncate_pagecache_range', 'adjust_fs_space', 'gfs2_ordered_add_inode', 'round_up', 'gfs2_inplace_release', 'mark_inode_dirty', 'gfs2_quota_unlock', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_iomap_put_folio': {'GFS2_I', 'folio_unlock', 'gfs2_is_jdata', 'gfs2_trans_end', '__mark_inode_dirty', 'offset_in_folio', 'folio_put', 'gfs2_trans_add_databufs', 'GFS2_SB', 'gfs2_is_stuffed'}, 'gfs2_map_journal_extents': {'GFS2_I', 'i_size_read', 'buffer_mapped', 'gfs2_block_map', 'fs_warn', 'ktime_get', 'fs_info', 'WARN_ON', 'list_empty', 'ktime_ms_delta', 'gfs2_free_journal_extents', 'gfs2_add_jextent'}, 'gfs2_writeback_range': {'GFS2_I', 'iomap_add_to_ioend', 'WARN_ON_ONCE', 'memset', 'gfs2_iomap_get', 'gfs2_is_stuffed'}, 'stuffed_zero_range': {'GFS2_I', 'gfs2_trans_add_meta', 'memset', 'gfs2_meta_inode_buffer', 'brelse'}, 'trunc_start': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_buffer_clear_tail', 'gfs2_is_jdata', 'i_blocksize', 'inode_set_ctime_current', 'gfs2_block_zero_range', 'gfs2_trans_end', 'inode_set_mtime_to_ts', 'gfs2_dinode_out', 'truncate_pagecache', 'gfs2_trans_add_meta', 'i_size_write', 'gfs2_journaled_truncate', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_is_stuffed'}, '__gfs2_unstuff_inode': {'gfs2_unstuffer_folio', 'gfs2_add_inode_blocks', 'gfs2_buffer_clear_tail', 'gfs2_get_inode_blocks', 'gfs2_trans_remove_revoke', 'i_size_read', 'gfs2_alloc_blocks', 'cpu_to_be64', 'gfs2_meta_inode_buffer', 'gfs2_trans_add_meta', 'gfs2_is_dir', 'cpu_to_be16', 'brelse', 'GFS2_SB', 'gfs2_buffer_copy_tail', 'gfs2_dir_get_new_buffer'}, 'gfs2_hole_size': {'metapath_to_block', 'gfs2_walk_metadata', 'release_metapath', 'clone_metapath', 'GFS2_SB'}, 'gfs2_journaled_truncate': {'gfs2_trans_begin', 'gfs2_trans_end', 'truncate_pagecache', 'test_bit', 'GFS2_SB'}, 'gfs2_journaled_truncate_range': {'gfs2_trans_begin', 'gfs2_trans_end', 'truncate_pagecache_range', 'test_bit', 'GFS2_SB'}, 'punch_hole': {'inode_set_ctime_current', 'gfs2_holder_mark_uninitialized', 'find_metapath', 'sweep_bh_for_rgrps', 'down_write', 'fillup_metapath', 'gfs2_metatype_check', 'cond_resched', 'walk_done', 'gfs2_trans_begin', 'lookup_metapath', 'inode_set_mtime_to_ts', 'gfs2_dinode_out', 'up_write', 'gfs2_metapath_ra', 'gfs2_quota_change', 'brelse', 'gfs2_statfs_change', 'find_nonnull_ptr', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_rindex_update', 'gfs2_trans_end', 'gfs2_meta_inode_buffer', 'fs_emerg', 'gfs2_quota_hold', 'gfs2_quota_unhold', 'gfs2_assert_withdraw', 'metapointer_range', 'release_metapath', 'gfs2_trans_add_meta', 'memcpy', 'GFS2_SB'}, 'sweep_bh_for_rgrps': {'gfs2_glock_nq_init', 'gfs2_get_inode_blocks', 'gfs2_glock_is_locked_by_me', 'inode_set_ctime_current', 'be64_to_cpu', 'down_write', 'cond_resched', '__gfs2_free_blocks', 'gfs2_rs_deltree', 'gfs2_trans_begin', 'gfs2_blk2rgrpd', 'inode_set_mtime_to_ts', 'gfs2_dinode_out', 'up_write', 'brelse', 'atomic_read', 'gfs2_add_inode_blocks', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'gfs2_trans_end', 'gfs2_rs_active', 'gfs2_meta_inode_buffer', 'rgrp_contains_block', 'gfs2_assert_withdraw', 'unlikely', 'gfs2_trans_add_meta', 'gfs2_glock2rgrp', 'GFS2_SB'}, 'trunc_end': {'i_size_read', 'gfs2_trans_begin', 'gfs2_buffer_clear_tail', 'inode_set_ctime_current', 'gfs2_trans_end', 'gfs2_ordered_del_inode', 'inode_set_mtime_to_ts', 'down_write', 'gfs2_dinode_out', 'up_write', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB'}, 'gfs2_unstuff_dinode': {'folio_unlock', '__gfs2_unstuff_inode', 'filemap_grab_folio', 'PTR_ERR', 'IS_ERR', 'down_write', 'folio_put', 'up_write'}, 'fillup_metapath': {'__fillup_metapath'}, 'lookup_metapath': {'__fillup_metapath'}, 'gfs2_iomap_alloc': {'__gfs2_iomap_get', 'release_metapath', '__gfs2_iomap_alloc'}, 'gfs2_iomap_get': {'__gfs2_iomap_get', 'release_metapath'}, '__fillup_metapath': {'metapointer', 'gfs2_meta_buffer', 'be64_to_cpu'}, 'gfs2_extent_length': {'be64_to_cpu'}, 'gfs2_metapath_ra': {'gfs2_getbuf', 'be64_to_cpu', 'buffer_uptodate', 'trylock_buffer', 'unlock_buffer', 'brelse', 'submit_bh'}, 'release_metapath': {'brelse'}, 'find_metapath': {'do_div'}, 'clone_metapath': {'get_bh'}, 'gfs2_alloc_extent': {'gfs2_iomap_alloc'}, 'gfs2_get_extent': {'gfs2_iomap_get'}, 'gfs2_truncatei_resume': {'i_size_read', 'trunc_end', 'punch_hole'}, 'gfs2_free_journal_extents': {'kfree', 'list_del', 'list_empty', 'list_first_entry'}, 'gfs2_add_jextent': {'list_last_entry', 'list_empty', 'kzalloc', 'list_add_tail'}, 'mp_eq_to_hgt': {'memcmp'}, 'gfs2_hole_walker': {'metapointer'}, 'find_nonnull_ptr': {'metaptr1', 'mp_eq_to_hgt'}, 'metapointer': {'metaptr1'}, 'metapointer_range': {'metaptr1', 'mp_eq_to_hgt'}, 'walk_done': {'mp_eq_to_hgt'}, 'gfs2_file_dealloc': {'punch_hole'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: CALL_GRAPH = {'gfs2_dentry_delete': {'GFS2_I', 'gfs2_holder_initialized', 'd_really_is_negative', 'test_bit', 'd_inode'}, 'gfs2_drevalidate': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_dir_check', 'is_bad_inode', 'GFS2_SB', 'd_inode'}, 'gfs2_dhash': {'gfs2_disk_hash'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: ATOMIC_CALLEES = {'this_cpu_ptr': {'gfs2_sbstats_inc at ./incore.h:869 from atomic context at ./incore.h:868'}} | |
Debug: CALL_GRAPH = {'gfs2_dentry_delete': {'GFS2_I', 'gfs2_holder_initialized', 'd_really_is_negative', 'test_bit', 'd_inode'}, 'gfs2_drevalidate': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_dir_check', 'is_bad_inode', 'GFS2_SB', 'd_inode'}, 'gfs2_dhash': {'gfs2_disk_hash'}, 'gfs2_max_stuffed_size': {'GFS2_SB'}, 'GFS2_I': {'container_of'}, 'gfs2_sbstats_inc': {'preempt_enable', 'preempt_disable', 'this_cpu_ptr'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: ATOMIC_CALLEES = {'this_cpu_ptr': {'gfs2_sbstats_inc at ./incore.h:869 from atomic context at ./incore.h:868'}} | |
Debug: CALL_GRAPH = {'gfs2_dentry_delete': {'GFS2_I', 'gfs2_holder_initialized', 'd_really_is_negative', 'test_bit', 'd_inode'}, 'gfs2_drevalidate': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_dir_check', 'is_bad_inode', 'GFS2_SB', 'd_inode'}, 'gfs2_dhash': {'gfs2_disk_hash'}, 'gfs2_max_stuffed_size': {'GFS2_SB'}, 'GFS2_I': {'container_of'}, 'gfs2_sbstats_inc': {'preempt_enable', 'preempt_disable', 'this_cpu_ptr'}, 'gfs2_check_internal_file_size': {'GFS2_I', 'gfs2_consist_inode', 'i_size_read', 'BIT'}, 'gfs2_add_inode_blocks': {'gfs2_assert', 'GFS2_SB'}, 'gfs2_is_dir': {'S_ISDIR'}, 'gfs2_inum_out': {'cpu_to_be64'}} | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_freeze_super': {'msleep() at ./super.c:766 (is an explicit sleep)'}, 'gfs2_freeze_func': {'mutex_lock() at ./super.c:689 (is a sleeping lock)'}, 'gfs2_thaw_freeze_initiator': {'mutex_lock() at ./super.c:826 (is a sleeping lock)'}, 'gfs2_jdesc_find': {'spin_lock() at ./super.c:100 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_free': {'spin_lock() at ./super.c:64 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_put_super': {'spin_lock() at ./super.c:586 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_show_options': {'spin_lock() at ./super.c:1070 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_change': {'spin_lock() at ./super.c:225 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_i': {'spin_lock() at ./super.c:945 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_init': {'spin_lock() at ./super.c:194 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_sync': {'spin_lock() at ./super.c:283 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_write_inode': {'spin_lock() at ./super.c:459 (is a sleeping lock on PREEMPT_RT)'}, 'update_statfs': {'spin_lock() at ./super.c:253 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_lock_fs_check_clean': {'kmalloc() with GFP_KERNEL at ./super.c:337 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_jdesc_check': {'GFS2_I', 'gfs2_write_alloc_required', 'i_size_read', 'GFS2_SB', 'BIT', 'gfs2_check_internal_file_size', 'gfs2_consist_inode'}, 'gfs2_jindex_free': {'kfree', 'list_del', 'list_del_init', 'iput', 'spin_unlock', 'BUG_ON', 'down_write', 'list_add', 'list_empty', 'list_first_entry', 'up_write', 'gfs2_free_journal_extents', 'spin_lock'}, 'evict_linked_inode': {'GFS2_I', 'gfs2_trans_begin', 'truncate_inode_pages', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_trans_end', 'filemap_fdatawait', 'write_inode_now', 'gfs2_ail_flush', 'test_bit', 'gfs2_log_flush'}, 'evict_should_delete': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_upgrade_iopen_glock', 'gfs2_holder_initialized', 'unlikely', 'WARN_ON_ONCE', 'gfs2_instantiate', 'gfs2_check_blk_type', 'test_bit', 'gfs2_inode_already_deleted'}, 'evict_unlinked_inode': {'GFS2_I', 'gfs2_ea_dealloc', 'gfs2_dir_exhash_dealloc', 'gfs2_file_dealloc', 'gfs2_inode_remember_delete', 'S_ISDIR', 'gfs2_dinode_dealloc', 'gfs2_is_stuffed'}, 'gfs2_dirty_inode': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'WARN_ON_ONCE', 'unlikely', 'gfs2_withdrawing_or_withdrawn', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_drop_inode': {'GFS2_I', 'generic_drop_inode', 'clear_nlink', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_needs_demote', 'unlikely', 'gfs2_glock_hold', 'test_bit', 'GFS2_SB', 'gfs2_glock_put_async'}, 'gfs2_evict_inode': {'gfs2_holder_mark_uninitialized', 'fs_warn', 'gfs2_assert_warn', 'truncate_inode_pages_final', 'gfs2_glock_hold', 'rcu_assign_pointer', 'gfs2_rs_deltree', 'wait_on_bit_io', 'GFS2_I', 'gfs2_dir_hash_inval', 'gfs2_glock_put_eventually', 'evict_unlinked_inode', 'gfs2_glock_dq_uninit', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_clear_object', 'gfs2_ordered_del_inode', 'evict_linked_inode', 'gfs2_rs_active', 'gfs2_glock_put', 'sb_rdonly', 'clear_inode', 'evict_should_delete', 'test_bit'}, 'gfs2_free_inode': {'GFS2_I', 'kmem_cache_free'}, 'gfs2_lock_fs_check_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'kfree', 'gfs2_freeze_unlock', 'gfs2_glock_dq_uninit', 'list_del', 'LIST_HEAD', 'gfs2_assert_withdraw', 'gfs2_freeze_lock_shared', 'list_add', 'list_empty', 'list_first_entry', 'gfs2_find_jhead', 'kmalloc'}, 'gfs2_make_fs_rw': {'GFS2_I', 'fs_err', 'set_bit', 'gfs2_withdrawing_or_withdrawn', 'gfs2_quota_init'}, 'gfs2_statfs_change': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'gfs2_wake_up_statfs', 'spin_lock'}, 'gfs2_statfs_init': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'spin_unlock', 'gfs2_statfs_change_in', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_statfs_sync': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_upgrade_iopen_glock': {'GFS2_I', 'test_bit', 'gfs2_glock_nq', 'gfs2_glock_holder_ready', 'gfs2_glock_dq_wait', 'glock_needs_demote', 'wait_event_interruptible_timeout', 'gfs2_glock_dq', 'gfs2_holder_reinit', 'GFS2_SB'}, 'gfs2_write_inode': {'GFS2_I', 'gfs2_is_jdata', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'inode_to_bdi', 'gfs2_ordered_del_inode', 'mark_inode_dirty_sync', 'gfs2_ail1_flush', 'spin_unlock', 'filemap_fdatawait', 'spin_lock', 'GFS2_SB', 'gfs2_log_flush'}, 'update_statfs': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'memset', 'spin_lock'}, 'gfs2_alloc_inode': {'RB_CLEAR_NODE', 'alloc_inode_sb', 'gfs2_holder_mark_uninitialized', 'memset'}, 'gfs2_dinode_out': {'i_size_read', 'gfs2_get_inode_blocks', 'inode_get_atime_nsec', 'inode_get_ctime_nsec', 'cpu_to_be64', 'i_uid_read', 'i_gid_read', 'inode_get_atime_sec', 'S_ISDIR', 'cpu_to_be32', 'cpu_to_be16', 'inode_get_mtime_sec', 'inode_get_ctime_sec', 'inode_get_mtime_nsec'}, 'gfs2_put_super': {'gfs2_clear_rgrpd', 'gfs2_withdrawing', 'gfs2_destroy_threads', 'gfs2_jindex_free', 'gfs2_make_fs_ro', 'spin_lock', 'gfs2_gl_hash_clear', 'smp_mb', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'brelse', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'free_local_statfs_inodes', 'set_bit', 'iput', 'wait_on_bit', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'gfs2_freeze_unlock', 'gfs2_sys_fs_del', 'WARN_ON', 'sb_rdonly', 'test_bit'}, 'gfs2_thaw_super': {'test_bit', 'deactivate_super', 'mutex_unlock', 'clear_bit', 'atomic_inc', 'mutex_trylock', 'gfs2_freeze_unlock', 'gfs2_do_thaw'}, 'gfs2_statfs_change_in': {'be64_to_cpu'}, 'gfs2_freeze_func': {'gfs2_freeze_unlock', 'gfs2_do_thaw', 'deactivate_super', 'set_bit', 'fs_info', 'mutex_unlock', 'clear_bit', 'mutex_lock', 'test_bit', 'freeze_super', 'container_of'}, 'gfs2_statfs_change_out': {'cpu_to_be64'}, 'gfs2_freeze_super': {'test_bit', 'fs_err', 'set_bit', 'fs_info', 'freeze_super', 'mutex_unlock', 'msleep', 'mutex_trylock', 'gfs2_lock_fs_check_clean', 'gfs2_do_thaw'}, 'gfs2_do_thaw': {'gfs2_assert_withdraw', 'thaw_super', 'gfs2_freeze_lock_shared', 'fs_info'}, 'gfs2_make_fs_ro': {'gfs2_assert_warn', 'wait_event_timeout', 'gfs2_destroy_threads', 'gfs2_flush_delete_work', 'gfs2_log_is_empty', 'gfs2_quota_sync', 'gfs2_quota_cleanup', 'test_bit', 'gfs2_log_flush', 'gfs2_statfs_sync'}, 'gfs2_thaw_freeze_initiator': {'mutex_unlock', 'test_bit', 'gfs2_freeze_unlock', 'mutex_lock'}, 'gfs2_statfs_slow': {'kfree', 'gfs2_glock_nq_init', 'gfs2_glock_poll', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_rgrpd_get_next', 'gfs2_glock_wait', 'yield', 'kmalloc_array', 'gfs2_holder_uninit', 'signal_pending', 'statfs_slow_fill', 'memset', 'gfs2_rgrpd_get_first', 'gfs2_glock2rgrp'}, 'gfs2_glock_put_eventually': {'gfs2_glock_put', 'gfs2_glock_put_async'}, 'gfs2_freeze_fs': {'gfs2_withdrawing_or_withdrawn', 'test_bit', 'gfs2_log_flush'}, 'gfs2_sync_fs': {'gfs2_log_flush', 'gfs2_quota_sync'}, 'statfs_slow_fill': {'gfs2_rgrp_verify'}, 'gfs2_statfs': {'uuid_to_fsid', 'gfs2_tune_get', 'gfs2_rindex_update', 'gfs2_statfs_i', 'gfs2_statfs_slow'}, 'free_local_statfs_inodes': {'kfree', 'list_del', 'iput'}, 'gfs2_show_options': {'seq_puts', 'is_subdir', 'seq_show_option', 'spin_unlock', 'spin_lock', 'test_bit', 'seq_printf'}, 'gfs2_jdesc_find': {'spin_lock', 'jdesc_find_i', 'spin_unlock'}, 'gfs2_statfs_i': {'spin_lock', 'spin_unlock'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_freeze_super': {'msleep() at ./super.c:766 (is an explicit sleep)'}, 'gfs2_freeze_func': {'mutex_lock() at ./super.c:689 (is a sleeping lock)'}, 'gfs2_thaw_freeze_initiator': {'mutex_lock() at ./super.c:826 (is a sleeping lock)'}, 'gfs2_jdesc_find': {'spin_lock() at ./super.c:100 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_free': {'spin_lock() at ./super.c:64 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_put_super': {'spin_lock() at ./super.c:586 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_show_options': {'spin_lock() at ./super.c:1070 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_change': {'spin_lock() at ./super.c:225 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_i': {'spin_lock() at ./super.c:945 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_init': {'spin_lock() at ./super.c:194 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_sync': {'spin_lock() at ./super.c:283 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_write_inode': {'spin_lock() at ./super.c:459 (is a sleeping lock on PREEMPT_RT)'}, 'update_statfs': {'spin_lock() at ./super.c:253 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_lock_fs_check_clean': {'kmalloc() with GFP_KERNEL at ./super.c:337 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_jdesc_check': {'GFS2_I', 'gfs2_write_alloc_required', 'i_size_read', 'GFS2_SB', 'BIT', 'gfs2_check_internal_file_size', 'gfs2_consist_inode'}, 'gfs2_jindex_free': {'kfree', 'list_del', 'list_del_init', 'iput', 'spin_unlock', 'BUG_ON', 'down_write', 'list_add', 'list_empty', 'list_first_entry', 'up_write', 'gfs2_free_journal_extents', 'spin_lock'}, 'evict_linked_inode': {'GFS2_I', 'gfs2_trans_begin', 'truncate_inode_pages', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_trans_end', 'filemap_fdatawait', 'write_inode_now', 'gfs2_ail_flush', 'test_bit', 'gfs2_log_flush'}, 'evict_should_delete': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_upgrade_iopen_glock', 'gfs2_holder_initialized', 'unlikely', 'WARN_ON_ONCE', 'gfs2_instantiate', 'gfs2_check_blk_type', 'test_bit', 'gfs2_inode_already_deleted'}, 'evict_unlinked_inode': {'GFS2_I', 'gfs2_ea_dealloc', 'gfs2_dir_exhash_dealloc', 'gfs2_file_dealloc', 'gfs2_inode_remember_delete', 'S_ISDIR', 'gfs2_dinode_dealloc', 'gfs2_is_stuffed'}, 'gfs2_dirty_inode': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'WARN_ON_ONCE', 'unlikely', 'gfs2_withdrawing_or_withdrawn', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_drop_inode': {'GFS2_I', 'generic_drop_inode', 'clear_nlink', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_needs_demote', 'unlikely', 'gfs2_glock_hold', 'test_bit', 'GFS2_SB', 'gfs2_glock_put_async'}, 'gfs2_evict_inode': {'gfs2_holder_mark_uninitialized', 'fs_warn', 'gfs2_assert_warn', 'truncate_inode_pages_final', 'gfs2_glock_hold', 'rcu_assign_pointer', 'gfs2_rs_deltree', 'wait_on_bit_io', 'GFS2_I', 'gfs2_dir_hash_inval', 'gfs2_glock_put_eventually', 'evict_unlinked_inode', 'gfs2_glock_dq_uninit', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_clear_object', 'gfs2_ordered_del_inode', 'evict_linked_inode', 'gfs2_rs_active', 'gfs2_glock_put', 'sb_rdonly', 'clear_inode', 'evict_should_delete', 'test_bit'}, 'gfs2_free_inode': {'GFS2_I', 'kmem_cache_free'}, 'gfs2_lock_fs_check_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'kfree', 'gfs2_freeze_unlock', 'gfs2_glock_dq_uninit', 'list_del', 'LIST_HEAD', 'gfs2_assert_withdraw', 'gfs2_freeze_lock_shared', 'list_add', 'list_empty', 'list_first_entry', 'gfs2_find_jhead', 'kmalloc'}, 'gfs2_make_fs_rw': {'GFS2_I', 'fs_err', 'set_bit', 'gfs2_withdrawing_or_withdrawn', 'gfs2_quota_init'}, 'gfs2_statfs_change': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'gfs2_wake_up_statfs', 'spin_lock'}, 'gfs2_statfs_init': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'spin_unlock', 'gfs2_statfs_change_in', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_statfs_sync': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_upgrade_iopen_glock': {'GFS2_I', 'test_bit', 'gfs2_glock_nq', 'gfs2_glock_holder_ready', 'gfs2_glock_dq_wait', 'glock_needs_demote', 'wait_event_interruptible_timeout', 'gfs2_glock_dq', 'gfs2_holder_reinit', 'GFS2_SB'}, 'gfs2_write_inode': {'GFS2_I', 'gfs2_is_jdata', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'inode_to_bdi', 'gfs2_ordered_del_inode', 'mark_inode_dirty_sync', 'gfs2_ail1_flush', 'spin_unlock', 'filemap_fdatawait', 'spin_lock', 'GFS2_SB', 'gfs2_log_flush'}, 'update_statfs': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'memset', 'spin_lock'}, 'gfs2_alloc_inode': {'RB_CLEAR_NODE', 'alloc_inode_sb', 'gfs2_holder_mark_uninitialized', 'memset'}, 'gfs2_dinode_out': {'i_size_read', 'gfs2_get_inode_blocks', 'inode_get_atime_nsec', 'inode_get_ctime_nsec', 'cpu_to_be64', 'i_uid_read', 'i_gid_read', 'inode_get_atime_sec', 'S_ISDIR', 'cpu_to_be32', 'cpu_to_be16', 'inode_get_mtime_sec', 'inode_get_ctime_sec', 'inode_get_mtime_nsec'}, 'gfs2_put_super': {'gfs2_clear_rgrpd', 'gfs2_withdrawing', 'gfs2_destroy_threads', 'gfs2_jindex_free', 'gfs2_make_fs_ro', 'spin_lock', 'gfs2_gl_hash_clear', 'smp_mb', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'brelse', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'free_local_statfs_inodes', 'set_bit', 'iput', 'wait_on_bit', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'gfs2_freeze_unlock', 'gfs2_sys_fs_del', 'WARN_ON', 'sb_rdonly', 'test_bit'}, 'gfs2_thaw_super': {'test_bit', 'deactivate_super', 'mutex_unlock', 'clear_bit', 'atomic_inc', 'mutex_trylock', 'gfs2_freeze_unlock', 'gfs2_do_thaw'}, 'gfs2_statfs_change_in': {'be64_to_cpu'}, 'gfs2_freeze_func': {'gfs2_freeze_unlock', 'gfs2_do_thaw', 'deactivate_super', 'set_bit', 'fs_info', 'mutex_unlock', 'clear_bit', 'mutex_lock', 'test_bit', 'freeze_super', 'container_of'}, 'gfs2_statfs_change_out': {'cpu_to_be64'}, 'gfs2_freeze_super': {'test_bit', 'fs_err', 'set_bit', 'fs_info', 'freeze_super', 'mutex_unlock', 'msleep', 'mutex_trylock', 'gfs2_lock_fs_check_clean', 'gfs2_do_thaw'}, 'gfs2_do_thaw': {'gfs2_assert_withdraw', 'thaw_super', 'gfs2_freeze_lock_shared', 'fs_info'}, 'gfs2_make_fs_ro': {'gfs2_assert_warn', 'wait_event_timeout', 'gfs2_destroy_threads', 'gfs2_flush_delete_work', 'gfs2_log_is_empty', 'gfs2_quota_sync', 'gfs2_quota_cleanup', 'test_bit', 'gfs2_log_flush', 'gfs2_statfs_sync'}, 'gfs2_thaw_freeze_initiator': {'mutex_unlock', 'test_bit', 'gfs2_freeze_unlock', 'mutex_lock'}, 'gfs2_statfs_slow': {'kfree', 'gfs2_glock_nq_init', 'gfs2_glock_poll', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_rgrpd_get_next', 'gfs2_glock_wait', 'yield', 'kmalloc_array', 'gfs2_holder_uninit', 'signal_pending', 'statfs_slow_fill', 'memset', 'gfs2_rgrpd_get_first', 'gfs2_glock2rgrp'}, 'gfs2_glock_put_eventually': {'gfs2_glock_put', 'gfs2_glock_put_async'}, 'gfs2_freeze_fs': {'gfs2_withdrawing_or_withdrawn', 'test_bit', 'gfs2_log_flush'}, 'gfs2_sync_fs': {'gfs2_log_flush', 'gfs2_quota_sync'}, 'statfs_slow_fill': {'gfs2_rgrp_verify'}, 'gfs2_statfs': {'uuid_to_fsid', 'gfs2_tune_get', 'gfs2_rindex_update', 'gfs2_statfs_i', 'gfs2_statfs_slow'}, 'free_local_statfs_inodes': {'kfree', 'list_del', 'iput'}, 'gfs2_show_options': {'seq_puts', 'is_subdir', 'seq_show_option', 'spin_unlock', 'spin_lock', 'test_bit', 'seq_printf'}, 'gfs2_jdesc_find': {'spin_lock', 'jdesc_find_i', 'spin_unlock'}, 'gfs2_statfs_i': {'spin_lock', 'spin_unlock'}, 'gfs2_dir_no_add': {'brelse'}, 'gfs2_qstr2dirent': {'cpu_to_be64', 'memset', 'cpu_to_be32', 'cpu_to_be16', 'memcpy'}, 'gfs2_disk_hash': {'crc32_le'}, 'gfs2_str2qstr': {'strlen', 'gfs2_disk_hash'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_freeze_super': {'msleep() at ./super.c:766 (is an explicit sleep)'}, 'gfs2_freeze_func': {'mutex_lock() at ./super.c:689 (is a sleeping lock)'}, 'gfs2_thaw_freeze_initiator': {'mutex_lock() at ./super.c:826 (is a sleeping lock)'}, 'gfs2_jdesc_find': {'spin_lock() at ./super.c:100 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_free': {'spin_lock() at ./super.c:64 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_put_super': {'spin_lock() at ./super.c:586 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_show_options': {'spin_lock() at ./super.c:1070 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_change': {'spin_lock() at ./super.c:225 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_i': {'spin_lock() at ./super.c:945 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_init': {'spin_lock() at ./super.c:194 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_sync': {'spin_lock() at ./super.c:283 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_write_inode': {'spin_lock() at ./super.c:459 (is a sleeping lock on PREEMPT_RT)'}, 'update_statfs': {'spin_lock() at ./super.c:253 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_lock_fs_check_clean': {'kmalloc() with GFP_KERNEL at ./super.c:337 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_jdesc_check': {'GFS2_I', 'gfs2_write_alloc_required', 'i_size_read', 'GFS2_SB', 'BIT', 'gfs2_check_internal_file_size', 'gfs2_consist_inode'}, 'gfs2_jindex_free': {'kfree', 'list_del', 'list_del_init', 'iput', 'spin_unlock', 'BUG_ON', 'down_write', 'list_add', 'list_empty', 'list_first_entry', 'up_write', 'gfs2_free_journal_extents', 'spin_lock'}, 'evict_linked_inode': {'GFS2_I', 'gfs2_trans_begin', 'truncate_inode_pages', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_trans_end', 'filemap_fdatawait', 'write_inode_now', 'gfs2_ail_flush', 'test_bit', 'gfs2_log_flush'}, 'evict_should_delete': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_upgrade_iopen_glock', 'gfs2_holder_initialized', 'unlikely', 'WARN_ON_ONCE', 'gfs2_instantiate', 'gfs2_check_blk_type', 'test_bit', 'gfs2_inode_already_deleted'}, 'evict_unlinked_inode': {'GFS2_I', 'gfs2_ea_dealloc', 'gfs2_dir_exhash_dealloc', 'gfs2_file_dealloc', 'gfs2_inode_remember_delete', 'S_ISDIR', 'gfs2_dinode_dealloc', 'gfs2_is_stuffed'}, 'gfs2_dirty_inode': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'WARN_ON_ONCE', 'unlikely', 'gfs2_withdrawing_or_withdrawn', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_drop_inode': {'GFS2_I', 'generic_drop_inode', 'clear_nlink', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_needs_demote', 'unlikely', 'gfs2_glock_hold', 'test_bit', 'GFS2_SB', 'gfs2_glock_put_async'}, 'gfs2_evict_inode': {'gfs2_holder_mark_uninitialized', 'fs_warn', 'gfs2_assert_warn', 'truncate_inode_pages_final', 'gfs2_glock_hold', 'rcu_assign_pointer', 'gfs2_rs_deltree', 'wait_on_bit_io', 'GFS2_I', 'gfs2_dir_hash_inval', 'gfs2_glock_put_eventually', 'evict_unlinked_inode', 'gfs2_glock_dq_uninit', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_clear_object', 'gfs2_ordered_del_inode', 'evict_linked_inode', 'gfs2_rs_active', 'gfs2_glock_put', 'sb_rdonly', 'clear_inode', 'evict_should_delete', 'test_bit'}, 'gfs2_free_inode': {'GFS2_I', 'kmem_cache_free'}, 'gfs2_lock_fs_check_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'kfree', 'gfs2_freeze_unlock', 'gfs2_glock_dq_uninit', 'list_del', 'LIST_HEAD', 'gfs2_assert_withdraw', 'gfs2_freeze_lock_shared', 'list_add', 'list_empty', 'list_first_entry', 'gfs2_find_jhead', 'kmalloc'}, 'gfs2_make_fs_rw': {'GFS2_I', 'fs_err', 'set_bit', 'gfs2_withdrawing_or_withdrawn', 'gfs2_quota_init'}, 'gfs2_statfs_change': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'gfs2_wake_up_statfs', 'spin_lock'}, 'gfs2_statfs_init': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'spin_unlock', 'gfs2_statfs_change_in', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_statfs_sync': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_upgrade_iopen_glock': {'GFS2_I', 'test_bit', 'gfs2_glock_nq', 'gfs2_glock_holder_ready', 'gfs2_glock_dq_wait', 'glock_needs_demote', 'wait_event_interruptible_timeout', 'gfs2_glock_dq', 'gfs2_holder_reinit', 'GFS2_SB'}, 'gfs2_write_inode': {'GFS2_I', 'gfs2_is_jdata', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'inode_to_bdi', 'gfs2_ordered_del_inode', 'mark_inode_dirty_sync', 'gfs2_ail1_flush', 'spin_unlock', 'filemap_fdatawait', 'spin_lock', 'GFS2_SB', 'gfs2_log_flush'}, 'update_statfs': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'memset', 'spin_lock'}, 'gfs2_alloc_inode': {'RB_CLEAR_NODE', 'alloc_inode_sb', 'gfs2_holder_mark_uninitialized', 'memset'}, 'gfs2_dinode_out': {'i_size_read', 'gfs2_get_inode_blocks', 'inode_get_atime_nsec', 'inode_get_ctime_nsec', 'cpu_to_be64', 'i_uid_read', 'i_gid_read', 'inode_get_atime_sec', 'S_ISDIR', 'cpu_to_be32', 'cpu_to_be16', 'inode_get_mtime_sec', 'inode_get_ctime_sec', 'inode_get_mtime_nsec'}, 'gfs2_put_super': {'gfs2_clear_rgrpd', 'gfs2_withdrawing', 'gfs2_destroy_threads', 'gfs2_jindex_free', 'gfs2_make_fs_ro', 'spin_lock', 'gfs2_gl_hash_clear', 'smp_mb', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'brelse', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'free_local_statfs_inodes', 'set_bit', 'iput', 'wait_on_bit', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'gfs2_freeze_unlock', 'gfs2_sys_fs_del', 'WARN_ON', 'sb_rdonly', 'test_bit'}, 'gfs2_thaw_super': {'test_bit', 'deactivate_super', 'mutex_unlock', 'clear_bit', 'atomic_inc', 'mutex_trylock', 'gfs2_freeze_unlock', 'gfs2_do_thaw'}, 'gfs2_statfs_change_in': {'be64_to_cpu'}, 'gfs2_freeze_func': {'gfs2_freeze_unlock', 'gfs2_do_thaw', 'deactivate_super', 'set_bit', 'fs_info', 'mutex_unlock', 'clear_bit', 'mutex_lock', 'test_bit', 'freeze_super', 'container_of'}, 'gfs2_statfs_change_out': {'cpu_to_be64'}, 'gfs2_freeze_super': {'test_bit', 'fs_err', 'set_bit', 'fs_info', 'freeze_super', 'mutex_unlock', 'msleep', 'mutex_trylock', 'gfs2_lock_fs_check_clean', 'gfs2_do_thaw'}, 'gfs2_do_thaw': {'gfs2_assert_withdraw', 'thaw_super', 'gfs2_freeze_lock_shared', 'fs_info'}, 'gfs2_make_fs_ro': {'gfs2_assert_warn', 'wait_event_timeout', 'gfs2_destroy_threads', 'gfs2_flush_delete_work', 'gfs2_log_is_empty', 'gfs2_quota_sync', 'gfs2_quota_cleanup', 'test_bit', 'gfs2_log_flush', 'gfs2_statfs_sync'}, 'gfs2_thaw_freeze_initiator': {'mutex_unlock', 'test_bit', 'gfs2_freeze_unlock', 'mutex_lock'}, 'gfs2_statfs_slow': {'kfree', 'gfs2_glock_nq_init', 'gfs2_glock_poll', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_rgrpd_get_next', 'gfs2_glock_wait', 'yield', 'kmalloc_array', 'gfs2_holder_uninit', 'signal_pending', 'statfs_slow_fill', 'memset', 'gfs2_rgrpd_get_first', 'gfs2_glock2rgrp'}, 'gfs2_glock_put_eventually': {'gfs2_glock_put', 'gfs2_glock_put_async'}, 'gfs2_freeze_fs': {'gfs2_withdrawing_or_withdrawn', 'test_bit', 'gfs2_log_flush'}, 'gfs2_sync_fs': {'gfs2_log_flush', 'gfs2_quota_sync'}, 'statfs_slow_fill': {'gfs2_rgrp_verify'}, 'gfs2_statfs': {'uuid_to_fsid', 'gfs2_tune_get', 'gfs2_rindex_update', 'gfs2_statfs_i', 'gfs2_statfs_slow'}, 'free_local_statfs_inodes': {'kfree', 'list_del', 'iput'}, 'gfs2_show_options': {'seq_puts', 'is_subdir', 'seq_show_option', 'spin_unlock', 'spin_lock', 'test_bit', 'seq_printf'}, 'gfs2_jdesc_find': {'spin_lock', 'jdesc_find_i', 'spin_unlock'}, 'gfs2_statfs_i': {'spin_lock', 'spin_unlock'}, 'gfs2_dir_no_add': {'brelse'}, 'gfs2_qstr2dirent': {'cpu_to_be64', 'memset', 'cpu_to_be32', 'cpu_to_be16', 'memcpy'}, 'gfs2_disk_hash': {'crc32_le'}, 'gfs2_str2qstr': {'strlen', 'gfs2_disk_hash'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_freeze_super': {'msleep() at ./super.c:766 (is an explicit sleep)'}, 'gfs2_freeze_func': {'mutex_lock() at ./super.c:689 (is a sleeping lock)'}, 'gfs2_thaw_freeze_initiator': {'mutex_lock() at ./super.c:826 (is a sleeping lock)'}, 'gfs2_jdesc_find': {'spin_lock() at ./super.c:100 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_free': {'spin_lock() at ./super.c:64 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_put_super': {'spin_lock() at ./super.c:586 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_show_options': {'spin_lock() at ./super.c:1070 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_change': {'spin_lock() at ./super.c:225 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_i': {'spin_lock() at ./super.c:945 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_init': {'spin_lock() at ./super.c:194 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_sync': {'spin_lock() at ./super.c:283 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_write_inode': {'spin_lock() at ./super.c:459 (is a sleeping lock on PREEMPT_RT)'}, 'update_statfs': {'spin_lock() at ./super.c:253 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_lock_fs_check_clean': {'kmalloc() with GFP_KERNEL at ./super.c:337 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_jdesc_check': {'GFS2_I', 'gfs2_write_alloc_required', 'i_size_read', 'GFS2_SB', 'BIT', 'gfs2_check_internal_file_size', 'gfs2_consist_inode'}, 'gfs2_jindex_free': {'kfree', 'list_del', 'list_del_init', 'iput', 'spin_unlock', 'BUG_ON', 'down_write', 'list_add', 'list_empty', 'list_first_entry', 'up_write', 'gfs2_free_journal_extents', 'spin_lock'}, 'evict_linked_inode': {'GFS2_I', 'gfs2_trans_begin', 'truncate_inode_pages', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_trans_end', 'filemap_fdatawait', 'write_inode_now', 'gfs2_ail_flush', 'test_bit', 'gfs2_log_flush'}, 'evict_should_delete': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_upgrade_iopen_glock', 'gfs2_holder_initialized', 'unlikely', 'WARN_ON_ONCE', 'gfs2_instantiate', 'gfs2_check_blk_type', 'test_bit', 'gfs2_inode_already_deleted'}, 'evict_unlinked_inode': {'GFS2_I', 'gfs2_ea_dealloc', 'gfs2_dir_exhash_dealloc', 'gfs2_file_dealloc', 'gfs2_inode_remember_delete', 'S_ISDIR', 'gfs2_dinode_dealloc', 'gfs2_is_stuffed'}, 'gfs2_dirty_inode': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'WARN_ON_ONCE', 'unlikely', 'gfs2_withdrawing_or_withdrawn', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_drop_inode': {'GFS2_I', 'generic_drop_inode', 'clear_nlink', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_needs_demote', 'unlikely', 'gfs2_glock_hold', 'test_bit', 'GFS2_SB', 'gfs2_glock_put_async'}, 'gfs2_evict_inode': {'gfs2_holder_mark_uninitialized', 'fs_warn', 'gfs2_assert_warn', 'truncate_inode_pages_final', 'gfs2_glock_hold', 'rcu_assign_pointer', 'gfs2_rs_deltree', 'wait_on_bit_io', 'GFS2_I', 'gfs2_dir_hash_inval', 'gfs2_glock_put_eventually', 'evict_unlinked_inode', 'gfs2_glock_dq_uninit', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_clear_object', 'gfs2_ordered_del_inode', 'evict_linked_inode', 'gfs2_rs_active', 'gfs2_glock_put', 'sb_rdonly', 'clear_inode', 'evict_should_delete', 'test_bit'}, 'gfs2_free_inode': {'GFS2_I', 'kmem_cache_free'}, 'gfs2_lock_fs_check_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'kfree', 'gfs2_freeze_unlock', 'gfs2_glock_dq_uninit', 'list_del', 'LIST_HEAD', 'gfs2_assert_withdraw', 'gfs2_freeze_lock_shared', 'list_add', 'list_empty', 'list_first_entry', 'gfs2_find_jhead', 'kmalloc'}, 'gfs2_make_fs_rw': {'GFS2_I', 'fs_err', 'set_bit', 'gfs2_withdrawing_or_withdrawn', 'gfs2_quota_init'}, 'gfs2_statfs_change': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'gfs2_wake_up_statfs', 'spin_lock'}, 'gfs2_statfs_init': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'spin_unlock', 'gfs2_statfs_change_in', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_statfs_sync': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_upgrade_iopen_glock': {'GFS2_I', 'test_bit', 'gfs2_glock_nq', 'gfs2_glock_holder_ready', 'gfs2_glock_dq_wait', 'glock_needs_demote', 'wait_event_interruptible_timeout', 'gfs2_glock_dq', 'gfs2_holder_reinit', 'GFS2_SB'}, 'gfs2_write_inode': {'GFS2_I', 'gfs2_is_jdata', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'inode_to_bdi', 'gfs2_ordered_del_inode', 'mark_inode_dirty_sync', 'gfs2_ail1_flush', 'spin_unlock', 'filemap_fdatawait', 'spin_lock', 'GFS2_SB', 'gfs2_log_flush'}, 'update_statfs': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'memset', 'spin_lock'}, 'gfs2_alloc_inode': {'RB_CLEAR_NODE', 'alloc_inode_sb', 'gfs2_holder_mark_uninitialized', 'memset'}, 'gfs2_dinode_out': {'i_size_read', 'gfs2_get_inode_blocks', 'inode_get_atime_nsec', 'inode_get_ctime_nsec', 'cpu_to_be64', 'i_uid_read', 'i_gid_read', 'inode_get_atime_sec', 'S_ISDIR', 'cpu_to_be32', 'cpu_to_be16', 'inode_get_mtime_sec', 'inode_get_ctime_sec', 'inode_get_mtime_nsec'}, 'gfs2_put_super': {'gfs2_clear_rgrpd', 'gfs2_withdrawing', 'gfs2_destroy_threads', 'gfs2_jindex_free', 'gfs2_make_fs_ro', 'spin_lock', 'gfs2_gl_hash_clear', 'smp_mb', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'brelse', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'free_local_statfs_inodes', 'set_bit', 'iput', 'wait_on_bit', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'gfs2_freeze_unlock', 'gfs2_sys_fs_del', 'WARN_ON', 'sb_rdonly', 'test_bit'}, 'gfs2_thaw_super': {'test_bit', 'deactivate_super', 'mutex_unlock', 'clear_bit', 'atomic_inc', 'mutex_trylock', 'gfs2_freeze_unlock', 'gfs2_do_thaw'}, 'gfs2_statfs_change_in': {'be64_to_cpu'}, 'gfs2_freeze_func': {'gfs2_freeze_unlock', 'gfs2_do_thaw', 'deactivate_super', 'set_bit', 'fs_info', 'mutex_unlock', 'clear_bit', 'mutex_lock', 'test_bit', 'freeze_super', 'container_of'}, 'gfs2_statfs_change_out': {'cpu_to_be64'}, 'gfs2_freeze_super': {'test_bit', 'fs_err', 'set_bit', 'fs_info', 'freeze_super', 'mutex_unlock', 'msleep', 'mutex_trylock', 'gfs2_lock_fs_check_clean', 'gfs2_do_thaw'}, 'gfs2_do_thaw': {'gfs2_assert_withdraw', 'thaw_super', 'gfs2_freeze_lock_shared', 'fs_info'}, 'gfs2_make_fs_ro': {'gfs2_assert_warn', 'wait_event_timeout', 'gfs2_destroy_threads', 'gfs2_flush_delete_work', 'gfs2_log_is_empty', 'gfs2_quota_sync', 'gfs2_quota_cleanup', 'test_bit', 'gfs2_log_flush', 'gfs2_statfs_sync'}, 'gfs2_thaw_freeze_initiator': {'mutex_unlock', 'test_bit', 'gfs2_freeze_unlock', 'mutex_lock'}, 'gfs2_statfs_slow': {'kfree', 'gfs2_glock_nq_init', 'gfs2_glock_poll', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_rgrpd_get_next', 'gfs2_glock_wait', 'yield', 'kmalloc_array', 'gfs2_holder_uninit', 'signal_pending', 'statfs_slow_fill', 'memset', 'gfs2_rgrpd_get_first', 'gfs2_glock2rgrp'}, 'gfs2_glock_put_eventually': {'gfs2_glock_put', 'gfs2_glock_put_async'}, 'gfs2_freeze_fs': {'gfs2_withdrawing_or_withdrawn', 'test_bit', 'gfs2_log_flush'}, 'gfs2_sync_fs': {'gfs2_log_flush', 'gfs2_quota_sync'}, 'statfs_slow_fill': {'gfs2_rgrp_verify'}, 'gfs2_statfs': {'uuid_to_fsid', 'gfs2_tune_get', 'gfs2_rindex_update', 'gfs2_statfs_i', 'gfs2_statfs_slow'}, 'free_local_statfs_inodes': {'kfree', 'list_del', 'iput'}, 'gfs2_show_options': {'seq_puts', 'is_subdir', 'seq_show_option', 'spin_unlock', 'spin_lock', 'test_bit', 'seq_printf'}, 'gfs2_jdesc_find': {'spin_lock', 'jdesc_find_i', 'spin_unlock'}, 'gfs2_statfs_i': {'spin_lock', 'spin_unlock'}, 'gfs2_dir_no_add': {'brelse'}, 'gfs2_qstr2dirent': {'cpu_to_be64', 'memset', 'cpu_to_be32', 'cpu_to_be16', 'memcpy'}, 'gfs2_disk_hash': {'crc32_le'}, 'gfs2_str2qstr': {'strlen', 'gfs2_disk_hash'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_freeze_super': {'msleep() at ./super.c:766 (is an explicit sleep)'}, 'gfs2_freeze_func': {'mutex_lock() at ./super.c:689 (is a sleeping lock)'}, 'gfs2_thaw_freeze_initiator': {'mutex_lock() at ./super.c:826 (is a sleeping lock)'}, 'gfs2_jdesc_find': {'spin_lock() at ./super.c:100 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_free': {'spin_lock() at ./super.c:64 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_put_super': {'spin_lock() at ./super.c:586 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_show_options': {'spin_lock() at ./super.c:1070 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_change': {'spin_lock() at ./super.c:225 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_i': {'spin_lock() at ./super.c:945 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_init': {'spin_lock() at ./super.c:194 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_sync': {'spin_lock() at ./super.c:283 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_write_inode': {'spin_lock() at ./super.c:459 (is a sleeping lock on PREEMPT_RT)'}, 'update_statfs': {'spin_lock() at ./super.c:253 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_lock_fs_check_clean': {'kmalloc() with GFP_KERNEL at ./super.c:337 (may sleep in PREEMPT_RT)'}, '__gfs2_set_acl': {'kmalloc() with GFP_NOFS at ./acl.c:92 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_jdesc_check': {'GFS2_I', 'gfs2_write_alloc_required', 'i_size_read', 'GFS2_SB', 'BIT', 'gfs2_check_internal_file_size', 'gfs2_consist_inode'}, 'gfs2_jindex_free': {'kfree', 'list_del', 'list_del_init', 'iput', 'spin_unlock', 'BUG_ON', 'down_write', 'list_add', 'list_empty', 'list_first_entry', 'up_write', 'gfs2_free_journal_extents', 'spin_lock'}, 'evict_linked_inode': {'GFS2_I', 'gfs2_trans_begin', 'truncate_inode_pages', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_trans_end', 'filemap_fdatawait', 'write_inode_now', 'gfs2_ail_flush', 'test_bit', 'gfs2_log_flush'}, 'evict_should_delete': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_upgrade_iopen_glock', 'gfs2_holder_initialized', 'unlikely', 'WARN_ON_ONCE', 'gfs2_instantiate', 'gfs2_check_blk_type', 'test_bit', 'gfs2_inode_already_deleted'}, 'evict_unlinked_inode': {'GFS2_I', 'gfs2_ea_dealloc', 'gfs2_dir_exhash_dealloc', 'gfs2_file_dealloc', 'gfs2_inode_remember_delete', 'S_ISDIR', 'gfs2_dinode_dealloc', 'gfs2_is_stuffed'}, 'gfs2_dirty_inode': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'WARN_ON_ONCE', 'unlikely', 'gfs2_withdrawing_or_withdrawn', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_drop_inode': {'GFS2_I', 'generic_drop_inode', 'clear_nlink', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_needs_demote', 'unlikely', 'gfs2_glock_hold', 'test_bit', 'GFS2_SB', 'gfs2_glock_put_async'}, 'gfs2_evict_inode': {'gfs2_holder_mark_uninitialized', 'fs_warn', 'gfs2_assert_warn', 'truncate_inode_pages_final', 'gfs2_glock_hold', 'rcu_assign_pointer', 'gfs2_rs_deltree', 'wait_on_bit_io', 'GFS2_I', 'gfs2_dir_hash_inval', 'gfs2_glock_put_eventually', 'evict_unlinked_inode', 'gfs2_glock_dq_uninit', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_clear_object', 'gfs2_ordered_del_inode', 'evict_linked_inode', 'gfs2_rs_active', 'gfs2_glock_put', 'sb_rdonly', 'clear_inode', 'evict_should_delete', 'test_bit'}, 'gfs2_free_inode': {'GFS2_I', 'kmem_cache_free'}, 'gfs2_lock_fs_check_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'kfree', 'gfs2_freeze_unlock', 'gfs2_glock_dq_uninit', 'list_del', 'LIST_HEAD', 'gfs2_assert_withdraw', 'gfs2_freeze_lock_shared', 'list_add', 'list_empty', 'list_first_entry', 'gfs2_find_jhead', 'kmalloc'}, 'gfs2_make_fs_rw': {'GFS2_I', 'fs_err', 'set_bit', 'gfs2_withdrawing_or_withdrawn', 'gfs2_quota_init'}, 'gfs2_statfs_change': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'gfs2_wake_up_statfs', 'spin_lock'}, 'gfs2_statfs_init': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'spin_unlock', 'gfs2_statfs_change_in', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_statfs_sync': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_upgrade_iopen_glock': {'GFS2_I', 'test_bit', 'gfs2_glock_nq', 'gfs2_glock_holder_ready', 'gfs2_glock_dq_wait', 'glock_needs_demote', 'wait_event_interruptible_timeout', 'gfs2_glock_dq', 'gfs2_holder_reinit', 'GFS2_SB'}, 'gfs2_write_inode': {'GFS2_I', 'gfs2_is_jdata', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'inode_to_bdi', 'gfs2_ordered_del_inode', 'mark_inode_dirty_sync', 'gfs2_ail1_flush', 'spin_unlock', 'filemap_fdatawait', 'spin_lock', 'GFS2_SB', 'gfs2_log_flush'}, 'update_statfs': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'memset', 'spin_lock'}, 'gfs2_alloc_inode': {'RB_CLEAR_NODE', 'alloc_inode_sb', 'gfs2_holder_mark_uninitialized', 'memset'}, 'gfs2_dinode_out': {'i_size_read', 'gfs2_get_inode_blocks', 'inode_get_atime_nsec', 'inode_get_ctime_nsec', 'cpu_to_be64', 'i_uid_read', 'i_gid_read', 'inode_get_atime_sec', 'S_ISDIR', 'cpu_to_be32', 'cpu_to_be16', 'inode_get_mtime_sec', 'inode_get_ctime_sec', 'inode_get_mtime_nsec'}, 'gfs2_put_super': {'gfs2_clear_rgrpd', 'gfs2_withdrawing', 'gfs2_destroy_threads', 'gfs2_jindex_free', 'gfs2_make_fs_ro', 'spin_lock', 'gfs2_gl_hash_clear', 'smp_mb', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'brelse', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'free_local_statfs_inodes', 'set_bit', 'iput', 'wait_on_bit', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'gfs2_freeze_unlock', 'gfs2_sys_fs_del', 'WARN_ON', 'sb_rdonly', 'test_bit'}, 'gfs2_thaw_super': {'test_bit', 'deactivate_super', 'mutex_unlock', 'clear_bit', 'atomic_inc', 'mutex_trylock', 'gfs2_freeze_unlock', 'gfs2_do_thaw'}, 'gfs2_statfs_change_in': {'be64_to_cpu'}, 'gfs2_freeze_func': {'gfs2_freeze_unlock', 'gfs2_do_thaw', 'deactivate_super', 'set_bit', 'fs_info', 'mutex_unlock', 'clear_bit', 'mutex_lock', 'test_bit', 'freeze_super', 'container_of'}, 'gfs2_statfs_change_out': {'cpu_to_be64'}, 'gfs2_freeze_super': {'test_bit', 'fs_err', 'set_bit', 'fs_info', 'freeze_super', 'mutex_unlock', 'msleep', 'mutex_trylock', 'gfs2_lock_fs_check_clean', 'gfs2_do_thaw'}, 'gfs2_do_thaw': {'gfs2_assert_withdraw', 'thaw_super', 'gfs2_freeze_lock_shared', 'fs_info'}, 'gfs2_make_fs_ro': {'gfs2_assert_warn', 'wait_event_timeout', 'gfs2_destroy_threads', 'gfs2_flush_delete_work', 'gfs2_log_is_empty', 'gfs2_quota_sync', 'gfs2_quota_cleanup', 'test_bit', 'gfs2_log_flush', 'gfs2_statfs_sync'}, 'gfs2_thaw_freeze_initiator': {'mutex_unlock', 'test_bit', 'gfs2_freeze_unlock', 'mutex_lock'}, 'gfs2_statfs_slow': {'kfree', 'gfs2_glock_nq_init', 'gfs2_glock_poll', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_rgrpd_get_next', 'gfs2_glock_wait', 'yield', 'kmalloc_array', 'gfs2_holder_uninit', 'signal_pending', 'statfs_slow_fill', 'memset', 'gfs2_rgrpd_get_first', 'gfs2_glock2rgrp'}, 'gfs2_glock_put_eventually': {'gfs2_glock_put', 'gfs2_glock_put_async'}, 'gfs2_freeze_fs': {'gfs2_withdrawing_or_withdrawn', 'test_bit', 'gfs2_log_flush'}, 'gfs2_sync_fs': {'gfs2_log_flush', 'gfs2_quota_sync'}, 'statfs_slow_fill': {'gfs2_rgrp_verify'}, 'gfs2_statfs': {'uuid_to_fsid', 'gfs2_tune_get', 'gfs2_rindex_update', 'gfs2_statfs_i', 'gfs2_statfs_slow'}, 'free_local_statfs_inodes': {'kfree', 'list_del', 'iput'}, 'gfs2_show_options': {'seq_puts', 'is_subdir', 'seq_show_option', 'spin_unlock', 'spin_lock', 'test_bit', 'seq_printf'}, 'gfs2_jdesc_find': {'spin_lock', 'jdesc_find_i', 'spin_unlock'}, 'gfs2_statfs_i': {'spin_lock', 'spin_unlock'}, 'gfs2_dir_no_add': {'brelse'}, 'gfs2_qstr2dirent': {'cpu_to_be64', 'memset', 'cpu_to_be32', 'cpu_to_be16', 'memcpy'}, 'gfs2_disk_hash': {'crc32_le'}, 'gfs2_str2qstr': {'strlen', 'gfs2_disk_hash'}, '__gfs2_get_acl': {'GFS2_I', 'kfree', 'gfs2_acl_name', 'gfs2_xattr_acl_get', 'ERR_PTR', 'posix_acl_from_xattr'}, 'gfs2_get_acl': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', '__gfs2_get_acl', 'gfs2_glock_dq_uninit', 'ERR_PTR'}, 'gfs2_set_acl': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'inode_set_ctime_current', 'gfs2_glock_dq_uninit', 'gfs2_qa_put', '__gfs2_set_acl', 'posix_acl_update_mode', 'gfs2_qa_get', 'mark_inode_dirty', 'GFS2_ACL_MAX_ENTRIES', 'GFS2_SB', 'd_inode'}, '__gfs2_set_acl': {'kfree', 'gfs2_acl_name', 'posix_acl_to_xattr', '__gfs2_xattr_set', 'posix_acl_xattr_size', 'set_cached_acl', 'kmalloc'}} | |
Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected. | |
Debug: POTENTIAL_SLEEPERS = {'gfs2_freeze_super': {'msleep() at ./super.c:766 (is an explicit sleep)'}, 'gfs2_freeze_func': {'mutex_lock() at ./super.c:689 (is a sleeping lock)'}, 'gfs2_thaw_freeze_initiator': {'mutex_lock() at ./super.c:826 (is a sleeping lock)'}, 'gfs2_jdesc_find': {'spin_lock() at ./super.c:100 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_jindex_free': {'spin_lock() at ./super.c:64 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_put_super': {'spin_lock() at ./super.c:586 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_show_options': {'spin_lock() at ./super.c:1070 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_change': {'spin_lock() at ./super.c:225 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_i': {'spin_lock() at ./super.c:945 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_init': {'spin_lock() at ./super.c:194 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_statfs_sync': {'spin_lock() at ./super.c:283 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_write_inode': {'spin_lock() at ./super.c:459 (is a sleeping lock on PREEMPT_RT)'}, 'update_statfs': {'spin_lock() at ./super.c:253 (is a sleeping lock on PREEMPT_RT)'}, 'gfs2_lock_fs_check_clean': {'kmalloc() with GFP_KERNEL at ./super.c:337 (may sleep in PREEMPT_RT)'}, '__gfs2_set_acl': {'kmalloc() with GFP_NOFS at ./acl.c:92 (may sleep in PREEMPT_RT)'}} | |
Debug: CALL_GRAPH = {'gfs2_jdesc_check': {'GFS2_I', 'gfs2_write_alloc_required', 'i_size_read', 'GFS2_SB', 'BIT', 'gfs2_check_internal_file_size', 'gfs2_consist_inode'}, 'gfs2_jindex_free': {'kfree', 'list_del', 'list_del_init', 'iput', 'spin_unlock', 'BUG_ON', 'down_write', 'list_add', 'list_empty', 'list_first_entry', 'up_write', 'gfs2_free_journal_extents', 'spin_lock'}, 'evict_linked_inode': {'GFS2_I', 'gfs2_trans_begin', 'truncate_inode_pages', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'gfs2_trans_end', 'filemap_fdatawait', 'write_inode_now', 'gfs2_ail_flush', 'test_bit', 'gfs2_log_flush'}, 'evict_should_delete': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_upgrade_iopen_glock', 'gfs2_holder_initialized', 'unlikely', 'WARN_ON_ONCE', 'gfs2_instantiate', 'gfs2_check_blk_type', 'test_bit', 'gfs2_inode_already_deleted'}, 'evict_unlinked_inode': {'GFS2_I', 'gfs2_ea_dealloc', 'gfs2_dir_exhash_dealloc', 'gfs2_file_dealloc', 'gfs2_inode_remember_delete', 'S_ISDIR', 'gfs2_dinode_dealloc', 'gfs2_is_stuffed'}, 'gfs2_dirty_inode': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'fs_err', 'gfs2_glock_is_locked_by_me', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'WARN_ON_ONCE', 'unlikely', 'gfs2_withdrawing_or_withdrawn', 'gfs2_dinode_out', 'gfs2_trans_add_meta', 'gfs2_meta_inode_buffer', 'brelse', 'GFS2_SB', 'gfs2_dump_glock'}, 'gfs2_drop_inode': {'GFS2_I', 'generic_drop_inode', 'clear_nlink', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_needs_demote', 'unlikely', 'gfs2_glock_hold', 'test_bit', 'GFS2_SB', 'gfs2_glock_put_async'}, 'gfs2_evict_inode': {'gfs2_holder_mark_uninitialized', 'fs_warn', 'gfs2_assert_warn', 'truncate_inode_pages_final', 'gfs2_glock_hold', 'rcu_assign_pointer', 'gfs2_rs_deltree', 'wait_on_bit_io', 'GFS2_I', 'gfs2_dir_hash_inval', 'gfs2_glock_put_eventually', 'evict_unlinked_inode', 'gfs2_glock_dq_uninit', 'gfs2_queue_verify_delete', 'gfs2_holder_initialized', 'glock_clear_object', 'gfs2_ordered_del_inode', 'evict_linked_inode', 'gfs2_rs_active', 'gfs2_glock_put', 'sb_rdonly', 'clear_inode', 'evict_should_delete', 'test_bit'}, 'gfs2_free_inode': {'GFS2_I', 'kmem_cache_free'}, 'gfs2_lock_fs_check_clean': {'GFS2_I', 'gfs2_jdesc_check', 'gfs2_glock_nq_init', 'kfree', 'gfs2_freeze_unlock', 'gfs2_glock_dq_uninit', 'list_del', 'LIST_HEAD', 'gfs2_assert_withdraw', 'gfs2_freeze_lock_shared', 'list_add', 'list_empty', 'list_first_entry', 'gfs2_find_jhead', 'kmalloc'}, 'gfs2_make_fs_rw': {'GFS2_I', 'fs_err', 'set_bit', 'gfs2_withdrawing_or_withdrawn', 'gfs2_quota_init'}, 'gfs2_statfs_change': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'gfs2_wake_up_statfs', 'spin_lock'}, 'gfs2_statfs_init': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'spin_unlock', 'gfs2_statfs_change_in', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_statfs_sync': {'GFS2_I', 'gfs2_trans_begin', 'gfs2_glock_nq_init', 'gfs2_glock_dq_uninit', 'gfs2_trans_end', 'spin_unlock', 'gfs2_statfs_change_in', 'update_statfs', 'gfs2_meta_inode_buffer', 'spin_lock', 'brelse'}, 'gfs2_upgrade_iopen_glock': {'GFS2_I', 'test_bit', 'gfs2_glock_nq', 'gfs2_glock_holder_ready', 'gfs2_glock_dq_wait', 'glock_needs_demote', 'wait_event_interruptible_timeout', 'gfs2_glock_dq', 'gfs2_holder_reinit', 'GFS2_SB'}, 'gfs2_write_inode': {'GFS2_I', 'gfs2_is_jdata', 'filemap_fdatawrite', 'gfs2_glock2aspace', 'inode_to_bdi', 'gfs2_ordered_del_inode', 'mark_inode_dirty_sync', 'gfs2_ail1_flush', 'spin_unlock', 'filemap_fdatawait', 'spin_lock', 'GFS2_SB', 'gfs2_log_flush'}, 'update_statfs': {'GFS2_I', 'gfs2_statfs_change_out', 'spin_unlock', 'gfs2_trans_add_meta', 'memset', 'spin_lock'}, 'gfs2_alloc_inode': {'RB_CLEAR_NODE', 'alloc_inode_sb', 'gfs2_holder_mark_uninitialized', 'memset'}, 'gfs2_dinode_out': {'i_size_read', 'gfs2_get_inode_blocks', 'inode_get_atime_nsec', 'inode_get_ctime_nsec', 'cpu_to_be64', 'i_uid_read', 'i_gid_read', 'inode_get_atime_sec', 'S_ISDIR', 'cpu_to_be32', 'cpu_to_be16', 'inode_get_mtime_sec', 'inode_get_ctime_sec', 'inode_get_mtime_nsec'}, 'gfs2_put_super': {'gfs2_clear_rgrpd', 'gfs2_withdrawing', 'gfs2_destroy_threads', 'gfs2_jindex_free', 'gfs2_make_fs_ro', 'spin_lock', 'gfs2_gl_hash_clear', 'smp_mb', 'spin_unlock', 'gfs2_withdrawing_or_withdrawn', 'brelse', 'free_sbd', 'gfs2_delete_debugfs_file', 'gfs2_glock_dq_uninit', 'gfs2_holder_initialized', 'free_local_statfs_inodes', 'set_bit', 'iput', 'wait_on_bit', 'gfs2_quota_cleanup', 'gfs2_glock_put', 'gfs2_freeze_unlock', 'gfs2_sys_fs_del', 'WARN_ON', 'sb_rdonly', 'test_bit'}, 'gfs2_thaw_super': {'test_bit', 'deactivate_super', 'mutex_unlock', 'clear_bit', 'atomic_inc', 'mutex_trylock', 'gfs2_freeze_unlock', 'gfs2_do_thaw'}, 'gfs2_statfs_change_in': {'be64_to_cpu'}, 'gfs2_freeze_func': {'gfs2_freeze_unlock', 'gfs2_do_thaw', 'deactivate_super', 'set_bit', 'fs_info', 'mutex_unlock', 'clear_bit', 'mutex_lock', 'test_bit', 'freeze_super', 'container_of'}, 'gfs2_statfs_change_out': {'cpu_to_be64'}, 'gfs2_freeze_super': {'test_bit', 'fs_err', 'set_bit', 'fs_info', 'freeze_super', 'mutex_unlock', 'msleep', 'mutex_trylock', 'gfs2_lock_fs_check_clean', 'gfs2_do_thaw'}, 'gfs2_do_thaw': {'gfs2_assert_withdraw', 'thaw_super', 'gfs2_freeze_lock_shared', 'fs_info'}, 'gfs2_make_fs_ro': {'gfs2_assert_warn', 'wait_event_timeout', 'gfs2_destroy_threads', 'gfs2_flush_delete_work', 'gfs2_log_is_empty', 'gfs2_quota_sync', 'gfs2_quota_cleanup', 'test_bit', 'gfs2_log_flush', 'gfs2_statfs_sync'}, 'gfs2_thaw_freeze_initiator': {'mutex_unlock', 'test_bit', 'gfs2_freeze_unlock', 'mutex_lock'}, 'gfs2_statfs_slow': {'kfree', 'gfs2_glock_nq_init', 'gfs2_glock_poll', 'gfs2_glock_dq_uninit', 'gfs2_holder_mark_uninitialized', 'gfs2_holder_initialized', 'gfs2_rgrpd_get_next', 'gfs2_glock_wait', 'yield', 'kmalloc_array', 'gfs2_holder_uninit', 'signal_pending', 'statfs_slow_fill', 'memset', 'gfs2_rgrpd_get_first', 'gfs2_glock2rgrp'}, 'gfs2_glock_put_eventually': {'gfs2_glock_put', 'gfs2_glock_put_async'}, 'gfs2_freeze_fs': {'gfs2_withdrawing_or_withdrawn', 'test_bit', 'gfs2_log_flush'}, 'gfs2_sync_fs': {'gfs2_log_flush', 'gfs2_quota_sync'}, 'statfs_slow_fill': {'gfs2_rgrp_verify'}, 'gfs2_statfs': {'uuid_to_fsid', 'gfs2_tune_get', 'gfs2_rindex_update', 'gfs2_statfs_i', 'gfs2_statfs_slow'}, 'free_local_statfs_inodes': {'kfree', 'list_del', 'iput'}, 'gfs2_show_options': {'seq_puts', 'is_subdir', 'seq_show_option', 'spin_unlock', 'spin_lock', 'test_bit', 'seq_printf'}, 'gfs2_jdesc_find': {'spin_lock', 'jdesc_find_i', 'spin_unlock'}, 'gfs2_statfs_i': {'spin_lock', 'spin_unlock'}, 'gfs2_dir_no_add': {'brelse'}, 'gfs2_qstr2dirent': {'cpu_to_be64', 'memset', 'cpu_to_be32', 'cpu_to_be16', 'memcpy'}, 'gfs2_disk_hash': {'crc32_le'}, 'gfs2_str2qstr': {'strlen', 'gfs2_disk_hash'}, '__gfs2_get_acl': {'GFS2_I', 'kfree', 'gfs2_acl_name', 'gfs2_xattr_acl_get', 'ERR_PTR', 'posix_acl_from_xattr'}, 'gfs2_get_acl': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', '__gfs2_get_acl', 'gfs2_glock_dq_uninit', 'ERR_PTR'}, 'gfs2_set_acl': {'GFS2_I', 'gfs2_glock_nq_init', 'gfs2_glock_is_locked_by_me', 'inode_set_ctime_current', 'gfs2_glock_dq_uninit', 'gfs2_qa_put', '__gfs2_set_acl', 'posix_acl_update_mode', 'gfs2_qa_get', 'mark_inode_dirty', 'GFS2_ACL_MAX_ENTRIES', 'GFS2_SB', 'd_inode'}, '__gfs2_set_acl': {'kfree', 'gfs2_acl_name', 'posix_acl_to_xattr', '__gfs2_xattr_set', 'posix_acl_xattr_size', 'set_cached_acl', 'kmalloc'}} | |
--- Inter-procedural Sleep-in-Atomic Analysis --- | |
No indirect sleep-in-atomic bugs found. | |
make[1]: Leaving directory '/home/ysk/linux/fs/gfs2' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: GPL-2.0-only | |
/// @description: Finds direct and inter-procedural calls to sleeping functions | |
/// (including spin_lock in PREEMPT_RT) within atomic contexts, such as | |
/// preemption or interrupt disabled regions. Detects two types of bugs: | |
/// 1. Direct: A sleeping function is called inside an atomic context. | |
/// 2. Indirect: A function called from an atomic context eventually calls | |
/// a sleeping function through a chain of calls. | |
/// | |
// Confidence: High | |
// Copyright: (C) 2025 Yunseong Kim <[email protected]> | |
// Options: --no-includes --include-headers | |
virtual report | |
// ========================================================================= | |
// 1. Main Rules to Find Violations | |
// ========================================================================= | |
// --- PART 1: Direct (Intra-procedural) Violation Detection --- | |
@find_direct_sleep_in_atomic@ | |
position p_atomic, p_call; | |
identifier bad_func =~ "^(mutex_lock|mutex_lock_interruptible|mutex_lock_killable|down|down_interruptible|down_killable|down_trylock|rwsem_down_read|rwsem_down_write|ww_mutex_lock|msleep|ssleep|usleep_range|wait_for_completion|schedule|cond_resched|copy_from_user|copy_to_user|get_user|put_user|vmalloc|spin_lock|read_lock|write_lock)$"; | |
expression lock, flags; | |
@@ | |
( | |
raw_spin_lock@p_atomic(...) | |
| raw_spin_lock_irq@p_atomic(...) | |
| raw_spin_lock_irqsave@p_atomic(...) | |
| raw_spin_lock_bh@p_atomic(...) | |
| raw_read_lock@p_atomic(...) | |
| raw_read_lock_irq@p_atomic(...) | |
| raw_read_lock_irqsave@p_atomic(...) | |
| raw_read_lock_bh@p_atomic(...) | |
| raw_write_lock@p_atomic(...) | |
| raw_write_lock_irq@p_atomic(...) | |
| raw_write_lock_irqsave@p_atomic(...) | |
| raw_write_lock_bh@p_atomic(...) | |
| preempt_disable@p_atomic() | |
| local_irq_disable@p_atomic() | |
| local_irq_save@p_atomic(...) | |
| local_bh_disable@p_atomic() | |
| bit_spin_lock@p_atomic(...) | |
) | |
<... | |
bad_func@p_call(...) | |
...> | |
( | |
raw_spin_unlock(lock) | |
| raw_spin_unlock_irq(lock) | |
| raw_spin_unlock_irqrestore(lock, flags) | |
| raw_spin_unlock_bh(lock) | |
| raw_read_unlock(lock) | |
| raw_read_unlock_irq(lock) | |
| raw_read_unlock_irqrestore(lock, flags) | |
| raw_read_unlock_bh(lock) | |
| raw_write_unlock(lock) | |
| raw_write_unlock_irq(lock) | |
| raw_write_unlock_irqrestore(lock, flags) | |
| raw_write_unlock_bh(lock) | |
| preempt_enable() | |
| local_irq_enable() | |
| local_irq_restore(flags) | |
| local_bh_enable() | |
| bit_spin_unlock(...) | |
) | |
@find_direct_sleep_alloc_in_atomic@ | |
position p_atomic, p_call; | |
identifier alloc_func =~ "^(kmalloc|kzalloc|kcalloc|kvmalloc|kvzalloc|kvcalloc)$"; | |
expression gfp, lock, flags; | |
@@ | |
( | |
raw_spin_lock@p_atomic(...) | |
| raw_spin_lock_irq@p_atomic(...) | |
| raw_spin_lock_irqsave@p_atomic(...) | |
| raw_spin_lock_bh@p_atomic(...) | |
| raw_read_lock@p_atomic(...) | |
| raw_read_lock_irq@p_atomic(...) | |
| raw_read_lock_irqsave@p_atomic(...) | |
| raw_read_lock_bh@p_atomic(...) | |
| raw_write_lock@p_atomic(...) | |
| raw_write_lock_irq@p_atomic(...) | |
| raw_write_lock_irqsave@p_atomic(...) | |
| raw_write_lock_bh@p_atomic(...) | |
| preempt_disable@p_atomic() | |
| local_irq_disable@p_atomic() | |
| local_irq_save@p_atomic(...) | |
| local_bh_disable@p_atomic() | |
| bit_spin_lock@p_atomic(...) | |
) | |
<... | |
alloc_func@p_call(..., gfp) | |
...> | |
( | |
raw_spin_unlock(lock) | |
| raw_spin_unlock_irq(lock) | |
| raw_spin_unlock_irqrestore(lock, flags) | |
| raw_spin_unlock_bh(lock) | |
| raw_read_unlock(lock) | |
| raw_read_unlock_irq(lock) | |
| raw_read_unlock_irqrestore(lock, flags) | |
| raw_read_unlock_bh(lock) | |
| raw_write_unlock(lock) | |
| raw_write_unlock_irq(lock) | |
| raw_write_unlock_irqrestore(lock, flags) | |
| raw_write_unlock_bh(lock) | |
| preempt_enable() | |
| local_irq_enable() | |
| local_irq_restore(flags) | |
| local_bh_enable() | |
| bit_spin_unlock(...) | |
) | |
// --- PART 2: Indirect (Inter-procedural) Violation Data Collection --- | |
@collect_atomic_callees@ | |
position p_atomic, p_callee_call; | |
identifier callee_func !~ "^\\b(raw_spin|raw_read|raw_write|preempt|local_irq|local_bh|printk|pr_|dev_)\\b"; | |
expression lock, flags; | |
@@ | |
( | |
raw_spin_lock@p_atomic(...) | |
| raw_spin_lock_irq@p_atomic(...) | |
| raw_spin_lock_irqsave@p_atomic(...) | |
| raw_spin_lock_bh@p_atomic(...) | |
| raw_read_lock@p_atomic(...) | |
| raw_read_lock_irq@p_atomic(...) | |
| raw_read_lock_irqsave@p_atomic(...) | |
| raw_read_lock_bh@p_atomic(...) | |
| raw_write_lock@p_atomic(...) | |
| raw_write_lock_irq@p_atomic(...) | |
| raw_write_lock_irqsave@p_atomic(...) | |
| raw_write_lock_bh@p_atomic(...) | |
| preempt_disable@p_atomic() | |
| local_irq_disable@p_atomic() | |
| local_irq_save@p_atomic(...) | |
| local_bh_disable@p_atomic() | |
| bit_spin_lock@p_atomic(...) | |
) | |
<... | |
callee_func@p_callee_call(...) | |
...> | |
( | |
raw_spin_unlock(lock) | |
| raw_spin_unlock_irq(lock) | |
| raw_spin_unlock_irqrestore(lock, flags) | |
| raw_spin_unlock_bh(lock) | |
| raw_read_unlock(lock) | |
| raw_read_unlock_irq(lock) | |
| raw_read_unlock_irqrestore(lock, flags) | |
| raw_read_unlock_bh(lock) | |
| raw_write_unlock(lock) | |
| raw_write_unlock_irq(lock) | |
| raw_write_unlock_irqrestore(lock, flags) | |
| raw_write_unlock_bh(lock) | |
| preempt_enable() | |
| local_irq_enable() | |
| local_irq_restore(flags) | |
| local_bh_enable() | |
| bit_spin_unlock(...) | |
) | |
@collect_potential_sleepers@ | |
position p_def, p_bad_call; | |
identifier func_def; | |
identifier bad_func =~ "^(mutex_lock|mutex_lock_interruptible|mutex_lock_killable|down|down_interruptible|down_killable|down_trylock|rwsem_down_read|rwsem_down_write|ww_mutex_lock|msleep|ssleep|usleep_range|wait_for_completion|schedule|cond_resched|copy_from_user|copy_to_user|get_user|put_user|vmalloc|spin_lock|read_lock|write_lock)$"; | |
@@ | |
( | |
func_def@p_def(...) { | |
<... | |
bad_func@p_bad_call(...) | |
...> | |
} | |
| | |
static inline func_def@p_def(...) { | |
<... | |
bad_func@p_bad_call(...) | |
...> | |
} | |
) | |
@collect_potential_alloc_sleepers@ | |
position p_def, p_bad_call; | |
identifier func_def; | |
identifier alloc_func =~ "^(kmalloc|kzalloc|kcalloc|kvmalloc|kvzalloc|kvcalloc)$"; | |
expression gfp; | |
@@ | |
( | |
func_def@p_def(...) { | |
<... | |
alloc_func@p_bad_call(..., gfp) | |
...> | |
} | |
| | |
static inline func_def@p_def(...) { | |
<... | |
alloc_func@p_bad_call(..., gfp) | |
...> | |
} | |
) | |
@collect_call_graph@ | |
position p_def, p_call; | |
identifier caller_func, callee_func !~ "^\\b(raw_spin|raw_read|raw_write|preempt|local_irq|local_bh|printk|pr_|dev_)\\b"; | |
@@ | |
( | |
caller_func@p_def(...) { | |
<... | |
callee_func@p_call(...) | |
...> | |
} | |
| | |
static inline caller_func@p_def(...) { | |
<... | |
callee_func@p_call(...) | |
...> | |
} | |
) | |
// ========================================================================= | |
// 2. Python Scripts for Data Collection and Rich Reporting | |
// ========================================================================= | |
@initialize:python@ | |
@@ | |
REASONS = { | |
"mutex_lock": "is a sleeping lock", | |
"down": "is a sleeping semaphore operation", | |
"rwsem_down": "is a sleeping lock", | |
"ww_mutex_lock": "is a sleeping lock", | |
"msleep": "is an explicit sleep", | |
"ssleep": "is an explicit sleep", | |
"usleep_range": "is an explicit sleep", | |
"wait_for_completion": "waits for an event and sleeps", | |
"schedule": "explicitly invokes the scheduler", | |
"cond_resched": "may invoke the scheduler", | |
"copy_from_user": "may sleep on page fault", | |
"copy_to_user": "may sleep on page fault", | |
"get_user": "may sleep on page fault", | |
"put_user": "may sleep on page fault", | |
"vmalloc": "can sleep", | |
"spin_lock": "is a sleeping lock on PREEMPT_RT", | |
"read_lock": "is a sleeping lock on PREEMPT_RT", | |
"write_lock": "is a sleeping lock on PREEMPT_RT", | |
"kmalloc": "may sleep in PREEMPT_RT", | |
"kzalloc": "may sleep in PREEMPT_RT", | |
"kcalloc": "may sleep in PREEMPT_RT", | |
"kvmalloc": "may sleep in PREEMPT_RT", | |
"kvzalloc": "may sleep in PREEMPT_RT", | |
"kvcalloc": "may sleep in PREEMPT_RT", | |
} | |
def get_reason(func_name): | |
for key in REASONS: | |
if func_name.startswith(key): | |
return REASONS[key] | |
return "is prohibited in atomic context" | |
// --- PART 1 Report: Direct Violations --- | |
@script:python depends on find_direct_sleep_in_atomic@ | |
p_atomic << find_direct_sleep_in_atomic.p_atomic; | |
p_call << find_direct_sleep_in_atomic.p_call; | |
bad_func << find_direct_sleep_in_atomic.bad_func; | |
@@ | |
bad_func_name = str(bad_func) | |
reason_str = get_reason(bad_func_name) | |
# Handle p_call and p_atomic as list or tuple or single Location | |
if isinstance(p_call, (list, tuple)): | |
if p_call: | |
p_call = p_call[0] | |
else: | |
p_call = None | |
if isinstance(p_atomic, (list, tuple)): | |
if p_atomic: | |
p_atomic = p_atomic[0] | |
else: | |
p_atomic = None | |
if p_call and hasattr(p_call, 'file') and hasattr(p_call, 'line') and hasattr(p_call, 'current_element') and p_atomic and hasattr(p_atomic, 'line'): | |
coccilib.report.print_report(p_call, | |
f"BUG (Direct): Prohibited call to {bad_func_name}() ({reason_str}) " | |
f"inside atomic context started at line {p_atomic.line} " | |
f"in function {p_call.current_element}.") | |
else: | |
print(f"Warning: Invalid position info for direct sleep {bad_func_name} at p_call={repr(p_call)}, p_atomic={repr(p_atomic)}") | |
@script:python depends on find_direct_sleep_alloc_in_atomic@ | |
p_atomic << find_direct_sleep_alloc_in_atomic.p_atomic; | |
p_call << find_direct_sleep_alloc_in_atomic.p_call; | |
alloc_func << find_direct_sleep_alloc_in_atomic.alloc_func; | |
gfp << find_direct_sleep_alloc_in_atomic.gfp; | |
@@ | |
alloc_func_name = str(alloc_func) | |
reason_str = get_reason(alloc_func_name) | |
# Handle p_call and p_atomic as list or tuple or single Location | |
if isinstance(p_call, (list, tuple)): | |
if p_call: | |
p_call = p_call[0] | |
else: | |
p_call = None | |
if isinstance(p_atomic, (list, tuple)): | |
if p_atomic: | |
p_atomic = p_atomic[0] | |
else: | |
p_atomic = None | |
if p_call and hasattr(p_call, 'file') and hasattr(p_call, 'line') and hasattr(p_call, 'current_element') and p_atomic and hasattr(p_atomic, 'line'): | |
coccilib.report.print_report(p_call, | |
f"BUG (Direct): Prohibited call to {alloc_func_name}() with {gfp} ({reason_str}) " | |
f"inside atomic context started at line {p_atomic.line} " | |
f"in function {p_call.current_element}.") | |
else: | |
print(f"Warning: Invalid position info for direct alloc {alloc_func_name} at p_call={repr(p_call)}, p_atomic={repr(p_atomic)}") | |
// --- PART 2 Collect: Data for Indirect Violations --- | |
@script:python depends on collect_atomic_callees@ | |
p_atomic << collect_atomic_callees.p_atomic; | |
p_callee_call << collect_atomic_callees.p_callee_call; | |
callee_func << collect_atomic_callees.callee_func; | |
@@ | |
if "ATOMIC_CALLEES" not in globals(): | |
ATOMIC_CALLEES = {} | |
# Handle p_callee_call and p_atomic as list or tuple or single Location | |
if isinstance(p_callee_call, (list, tuple)): | |
if p_callee_call: | |
p_callee_call = p_callee_call[0] | |
else: | |
p_callee_call = None | |
if isinstance(p_atomic, (list, tuple)): | |
if p_atomic: | |
p_atomic = p_atomic[0] | |
else: | |
p_atomic = None | |
if p_callee_call and hasattr(p_callee_call, 'file') and hasattr(p_callee_call, 'line') and hasattr(p_callee_call, 'current_element') and p_atomic and hasattr(p_atomic, 'file') and hasattr(p_atomic, 'line'): | |
context_info = (f"{p_callee_call.current_element} at {p_callee_call.file}:{p_callee_call.line} " | |
f"from atomic context at {p_atomic.file}:{p_atomic.line}") | |
else: | |
print(f"Warning: Invalid position info for {callee_func} at p_callee_call={repr(p_callee_call)}, p_atomic={repr(p_atomic)}") | |
context_info = f"{callee_func} (unknown location)" | |
key = str(callee_func) | |
if key not in ATOMIC_CALLEES: | |
ATOMIC_CALLEES[key] = set() | |
ATOMIC_CALLEES[key].add(context_info) | |
@script:python depends on collect_potential_sleepers@ | |
p_def << collect_potential_sleepers.p_def; | |
p_bad_call << collect_potential_sleepers.p_bad_call; | |
func_def << collect_potential_sleepers.func_def; | |
bad_func << collect_potential_sleepers.bad_func; | |
@@ | |
if "POTENTIAL_SLEEPERS" not in globals(): | |
POTENTIAL_SLEEPERS = {} | |
bad_func_name = str(bad_func) | |
reason_str = get_reason(bad_func_name) | |
# Handle p_bad_call as list or tuple or single Location | |
if isinstance(p_bad_call, (list, tuple)): | |
if p_bad_call: | |
p_bad_call = p_bad_call[0] | |
else: | |
p_bad_call = None | |
if p_bad_call and hasattr(p_bad_call, 'file') and hasattr(p_bad_call, 'line'): | |
sleeper_info = (f"{bad_func_name}() at {p_bad_call.file}:{p_bad_call.line} ({reason_str})") | |
else: | |
print(f"Warning: Invalid position info for sleeper {bad_func_name} at p_bad_call={repr(p_bad_call)}") | |
sleeper_info = f"{bad_func_name}() (unknown location) ({reason_str})" | |
key = str(func_def) | |
if key not in POTENTIAL_SLEEPERS: | |
POTENTIAL_SLEEPERS[key] = set() | |
POTENTIAL_SLEEPERS[key].add(sleeper_info) | |
@script:python depends on collect_potential_alloc_sleepers@ | |
p_def << collect_potential_alloc_sleepers.p_def; | |
p_bad_call << collect_potential_alloc_sleepers.p_bad_call; | |
func_def << collect_potential_alloc_sleepers.func_def; | |
alloc_func << collect_potential_alloc_sleepers.alloc_func; | |
gfp << collect_potential_alloc_sleepers.gfp; | |
@@ | |
if "POTENTIAL_SLEEPERS" not in globals(): | |
POTENTIAL_SLEEPERS = {} | |
alloc_func_name = str(alloc_func) | |
reason_str = get_reason(alloc_func_name) | |
# Handle p_bad_call as list or tuple or single Location | |
if isinstance(p_bad_call, (list, tuple)): | |
if p_bad_call: | |
p_bad_call = p_bad_call[0] | |
else: | |
p_bad_call = None | |
if p_bad_call and hasattr(p_bad_call, 'file') and hasattr(p_bad_call, 'line'): | |
sleeper_info = (f"{alloc_func_name}() with {gfp} at {p_bad_call.file}:{p_bad_call.line} ({reason_str})") | |
else: | |
print(f"Warning: Invalid position info for alloc {alloc_func_name} at p_bad_call={repr(p_bad_call)}") | |
sleeper_info = f"{alloc_func_name}() with {gfp} (unknown location) ({reason_str})" | |
key = str(func_def) | |
if key not in POTENTIAL_SLEEPERS: | |
POTENTIAL_SLEEPERS[key] = set() | |
POTENTIAL_SLEEPERS[key].add(sleeper_info) | |
@script:python depends on collect_call_graph@ | |
p_def << collect_call_graph.p_def; | |
caller_func << collect_call_graph.caller_func; | |
callee_func << collect_call_graph.callee_func; | |
@@ | |
if "CALL_GRAPH" not in globals(): | |
CALL_GRAPH = {} | |
key = str(caller_func) | |
callee_str = str(callee_func) | |
if key not in CALL_GRAPH: | |
CALL_GRAPH[key] = set() | |
CALL_GRAPH[key].add(callee_str) | |
// --- PART 3 Report: Indirect Violations --- | |
@script:python final@ | |
@@ | |
import collections | |
def build_call_path(func, reverse_graph, visited=None): | |
if visited is None: | |
visited = set() | |
if func not in reverse_graph or func in visited: | |
return [] | |
visited.add(func) | |
paths = [] | |
for parent in reverse_graph.get(func, set()): | |
sub_paths = build_call_path(parent, reverse_graph, visited.copy()) | |
if sub_paths: | |
for path in sub_paths: | |
paths.append([func] + path) | |
else: | |
paths.append([func]) | |
return paths if paths else [[func]] | |
if "ATOMIC_CALLEES" in globals() and "POTENTIAL_SLEEPERS" in globals() and "CALL_GRAPH" in globals(): | |
print("\n--- Inter-procedural Sleep-in-Atomic Analysis ---") | |
found_bugs = False | |
# Build reverse graph | |
REVERSE_GRAPH = {} | |
for caller, callees in CALL_GRAPH.items(): | |
for callee in callees: | |
if callee not in REVERSE_GRAPH: | |
REVERSE_GRAPH[callee] = set() | |
REVERSE_GRAPH[callee].add(caller) | |
# Find transitive sleepers | |
may_sleep = set() | |
transitive_reasons = {} | |
queue = collections.deque(POTENTIAL_SLEEPERS.keys()) | |
visited = set() | |
while queue: | |
func = queue.popleft() | |
if func in visited: | |
continue | |
visited.add(func) | |
may_sleep.add(func) | |
if func in POTENTIAL_SLEEPERS: | |
transitive_reasons[func] = POTENTIAL_SLEEPERS[func] | |
else: | |
transitive_reasons[func] = set() | |
for parent in REVERSE_GRAPH.get(func, set()): | |
if parent not in visited: | |
queue.append(parent) | |
transitive_reasons[parent] = transitive_reasons.get(parent, set()) | transitive_reasons[func] | |
# Find risky functions | |
risky_funcs = set(ATOMIC_CALLEES.keys()) & may_sleep | |
for func in sorted(risky_funcs): | |
found_bugs = True | |
print(f"\n[!] BUG (Indirect): Function '{func}' can sleep and is called from an atomic context.") | |
print(f" - Sleep details:") | |
for reason in sorted(transitive_reasons.get(func, set())): | |
print(f" - {reason}") | |
print(f" - Atomic call sites:") | |
for context in sorted(ATOMIC_CALLEES.get(func, set())): | |
print(f" - {context}") | |
# Print call paths | |
print(f" - Call paths to sleepers:") | |
for path in build_call_path(func, REVERSE_GRAPH): | |
print(f" - {' -> '.join(path)}") | |
if not found_bugs: | |
print("No indirect sleep-in-atomic bugs found.") | |
else: | |
print("Error: Required data (ATOMIC_CALLEES, POTENTIAL_SLEEPERS, or CALL_GRAPH) not collected.") | |
# Debug globals state | |
if "ATOMIC_CALLEES" in globals(): | |
print(f"Debug: ATOMIC_CALLEES = {ATOMIC_CALLEES}") | |
if "POTENTIAL_SLEEPERS" in globals(): | |
print(f"Debug: POTENTIAL_SLEEPERS = {POTENTIAL_SLEEPERS}") | |
if "CALL_GRAPH" in globals(): | |
print(f"Debug: CALL_GRAPH = {CALL_GRAPH}") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment