From b8372d1184f5dc91d0bfe36c103c961888b21a9a Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Thu, 30 May 2019 23:47:49 +0200 Subject: Regenerated call graphs with pycflow2dot The call graphs are regenerated to obtain a more detailed view of all used functions in the implementations compared to the call graphs generated by gcc and egypt --- analysis/loop/call_graph_loop_device.svg | 3532 ++++++++++++++++++++++++++---- 1 file changed, 3110 insertions(+), 422 deletions(-) (limited to 'analysis/loop/call_graph_loop_device.svg') diff --git a/analysis/loop/call_graph_loop_device.svg b/analysis/loop/call_graph_loop_device.svg index 4b2547b..2017d15 100644 --- a/analysis/loop/call_graph_loop_device.svg +++ b/analysis/loop/call_graph_loop_device.svg @@ -3,563 +3,3251 @@ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> - - - -callgraph - - + + + +%3 + + -lo_ioctl - -lo_ioctl +lo_compat_ioctl + +lo_compat_ioctl - + -loop_set_status_old - -loop_set_status_old +loop_set_status_compat + +loop_set_status_compat - + -lo_ioctl->loop_set_status_old - - +lo_compat_ioctl->loop_set_status_compat + + - + -loop_validate_file - -loop_validate_file +loop_get_status_compat + +loop_get_status_compat - + -lo_ioctl->loop_validate_file - - +lo_compat_ioctl->loop_get_status_compat + + - + -loop_get_status_old - -loop_get_status_old +compat_ptr + +compat_ptr - + -lo_ioctl->loop_get_status_old - - +lo_compat_ioctl->compat_ptr + + - + -loop_reread_partitions - -loop_reread_partitions +lo_ioctl + +lo_ioctl - + -lo_ioctl->loop_reread_partitions - - +lo_compat_ioctl->lo_ioctl + + - + -loop_get_status64 - -loop_get_status64 +loop_info64_from_compat + +loop_info64_from_compat - + -lo_ioctl->loop_get_status64 - - +loop_set_status_compat->loop_info64_from_compat + + - + -__loop_clr_fd - -__loop_clr_fd +loop_set_status + +loop_set_status - + -lo_ioctl->__loop_clr_fd - - +loop_set_status_compat->loop_set_status + + - - -loop_set_status64 - -loop_set_status64 + + +loop_get_status + +loop_get_status - - -lo_ioctl->loop_set_status64 - - + + +loop_get_status_compat->loop_get_status + + - - -__loop_update_dio - -__loop_update_dio + + +loop_info64_to_compat + +loop_info64_to_compat - - -lo_ioctl->__loop_update_dio - - + + +loop_get_status_compat->loop_info64_to_compat + + - - -figure_loop_size - -figure_loop_size + + +capable + +capable - - -lo_ioctl->figure_loop_size - - + + +lo_ioctl->capable + + - - -loop_set_status - -loop_set_status + + +loop_set_fd + +loop_set_fd - - -loop_set_status_old->loop_set_status - - + + +lo_ioctl->loop_set_fd + + - - -loop_get_status - -loop_get_status + + +loop_change_fd + +loop_change_fd - - -loop_get_status_old->loop_get_status - - + + +lo_ioctl->loop_change_fd + + - - -loop_get_status64->loop_get_status - - + + +loop_clr_fd + +loop_clr_fd - - -loop_release_xfer - -loop_release_xfer + + +lo_ioctl->loop_clr_fd + + - - -__loop_clr_fd->loop_release_xfer - - + + +loop_set_status_old + +loop_set_status_old - - -loop_set_status64->loop_set_status - - + + +lo_ioctl->loop_set_status_old + + - - -lo_compat_ioctl - -lo_compat_ioctl + + +loop_get_status_old + +loop_get_status_old - - -lo_compat_ioctl->lo_ioctl - - + + +lo_ioctl->loop_get_status_old + + - - -loop_get_status_compat - -loop_get_status_compat + + +loop_set_status64 + +loop_set_status64 - - -lo_compat_ioctl->loop_get_status_compat - - + + +lo_ioctl->loop_set_status64 + + - - -loop_set_status_compat - -loop_set_status_compat + + +loop_get_status64 + +loop_get_status64 - - -lo_compat_ioctl->loop_set_status_compat - - + + +lo_ioctl->loop_get_status64 + + + + + +lo_simple_ioctl + +lo_simple_ioctl + + + +lo_ioctl->lo_simple_ioctl + + + + + +copy_from_user + +copy_from_user - - -loop_get_status_compat->loop_get_status - - + + +loop_info64_from_compat->copy_from_user + + - - -loop_info64_to_compat - -loop_info64_to_compat + + +memset + +memset - - -loop_get_status_compat->loop_info64_to_compat - - + + +loop_info64_from_compat->memset + + - - -loop_set_status_compat->loop_set_status - - + + +memcpy + +memcpy - - -loop_info64_from_compat - -loop_info64_from_compat + + +loop_info64_from_compat->memcpy + + - - -loop_set_status_compat->loop_info64_from_compat - - + + +loop_set_status->memcpy + + - - -loop_probe - -loop_probe + + +current_uid + +current_uid - - -loop_add - -loop_add + + +loop_set_status->current_uid + + - - -loop_probe->loop_add - - + + +mutex_lock_killable + +mutex_lock_killable - - -loop_lookup - -loop_lookup + + +loop_set_status->mutex_lock_killable + + - + + +uid_eq + +uid_eq + + + +loop_set_status->uid_eq + + + + -loop_probe->loop_lookup - - +loop_set_status->capable + + - - -loop_lookup.part.3 - -loop_lookup.part.3 + + +sync_blockdev + +sync_blockdev - - -loop_lookup->loop_lookup.part.3 - - + + +loop_set_status->sync_blockdev + + - - -loop_set_status->loop_reread_partitions - - + + +kill_bdev + +kill_bdev - + -loop_set_status->__loop_update_dio - - +loop_set_status->kill_bdev + + - - -loop_set_status->figure_loop_size - - + + +blk_mq_freeze_queue + +blk_mq_freeze_queue - + +loop_set_status->blk_mq_freeze_queue + + + + + +loop_release_xfer + +loop_release_xfer + + + loop_set_status->loop_release_xfer - - + + + + + +loop_init_xfer + +loop_init_xfer - + + +loop_set_status->loop_init_xfer + + + + -loop_get_status.part.7 - -loop_get_status.part.7 +pr_warn + +pr_warn - + -loop_get_status->loop_get_status.part.7 - - +loop_set_status->pr_warn + + - + + +figure_loop_size + +figure_loop_size + + + +loop_set_status->figure_loop_size + + + + -lo_rw_aio - -lo_rw_aio +loop_config_discard + +loop_config_discard - + + +loop_set_status->loop_config_discard + + + + -lo_rw_aio_do_completion - -lo_rw_aio_do_completion +blk_mq_unfreeze_queue + +blk_mq_unfreeze_queue - - -lo_rw_aio->lo_rw_aio_do_completion - - + + +loop_set_status->blk_mq_unfreeze_queue + + - + -lo_rw_aio_complete - -lo_rw_aio_complete +mutex_unlock + +mutex_unlock - - -lo_rw_aio_complete->lo_rw_aio_do_completion - - + + +loop_set_status->mutex_unlock + + - + -unregister_transfer_cb - -unregister_transfer_cb +loop_reread_partitions + +loop_reread_partitions - - -unregister_transfer_cb->loop_release_xfer - - + + +loop_set_status->loop_reread_partitions + + - + -lo_release - -lo_release +module_put + +module_put - + + +loop_release_xfer->module_put + + + + -lo_release->__loop_clr_fd - - +loop_init_xfer->module_put + + - + -loop_control_ioctl - -loop_control_ioctl +try_module_get + +try_module_get - - -loop_control_ioctl->loop_add - - - - + -loop_control_ioctl->loop_lookup - - +loop_init_xfer->try_module_get + + - + + +get_size + +get_size + + -loop_control_ioctl->loop_lookup.part.3 - - +figure_loop_size->get_size + + - - -loop_remove - -loop_remove + + +unlikely + +unlikely - + -loop_control_ioctl->loop_remove - - +figure_loop_size->unlikely + + - + + +set_capacity + +set_capacity + + + +figure_loop_size->set_capacity + + + + -loop_init - -loop_init +bd_set_size + +bd_set_size - - -loop_init->loop_add - - + + +figure_loop_size->bd_set_size + + - + -loop_exit_cb - -loop_exit_cb +get_capacity + +get_capacity - - -loop_exit_cb->loop_remove - - + + +figure_loop_size->get_capacity + + - + -loop_queue_work - -loop_queue_work +kobject_uevent + +kobject_uevent - - -loop_queue_work->lo_rw_aio - - + + +figure_loop_size->kobject_uevent + + - + -lo_write_bvec - -lo_write_bvec - - - -loop_queue_work->lo_write_bvec - - +disk_to_dev + +disk_to_dev - - -transfer_xor - -transfer_xor + + +figure_loop_size->disk_to_dev + + - + -loop_attr_do_show_backing_file - -loop_attr_do_show_backing_file +blk_queue_max_discard_sectors + +blk_queue_max_discard_sectors + + + +loop_config_discard->blk_queue_max_discard_sectors + + - + -loop_attr_do_show_partscan - -loop_attr_do_show_partscan +blk_queue_max_write_zeroes_sectors + +blk_queue_max_write_zeroes_sectors - + + +loop_config_discard->blk_queue_max_write_zeroes_sectors + + + + -loop_unregister_transfer - -loop_unregister_transfer +blk_queue_flag_clear + +blk_queue_flag_clear + + + +loop_config_discard->blk_queue_flag_clear + + - + -loop_attr_do_show_dio - -loop_attr_do_show_dio +blk_queue_flag_set + +blk_queue_flag_set + + + +loop_config_discard->blk_queue_flag_set + + + + + +loop_reread_partitions->pr_warn + + - + -loop_attr_do_show_offset - -loop_attr_do_show_offset +blkdev_reread_part + +blkdev_reread_part - - -loop_attr_do_show_sizelimit - -loop_attr_do_show_sizelimit + + +loop_reread_partitions->blkdev_reread_part + + - - -find_free_cb - -find_free_cb + + +i_size_read + +i_size_read - + + +get_size->i_size_read + + + + + +loop_get_status->memset + + + + + +loop_get_status->memcpy + + + + + +loop_get_status->mutex_lock_killable + + + + + +loop_get_status->capable + + + + + +loop_get_status->mutex_unlock + + + + -lo_complete_rq - -lo_complete_rq +path_get + +path_get + + + +loop_get_status->path_get + + - + -loop_attr_do_show_autoclear - -loop_attr_do_show_autoclear +vfs_getattr + +vfs_getattr - + + +loop_get_status->vfs_getattr + + + + -loop_kthread_worker_fn - -loop_kthread_worker_fn +huge_encode_dev + +huge_encode_dev - - -loop_queue_rq - -loop_queue_rq + + +loop_get_status->huge_encode_dev + + - + + +path_put + +path_put + + + +loop_get_status->path_put + + + + + +loop_info64_to_compat->memset + + + + + +loop_info64_to_compat->memcpy + + + + -xor_init - -xor_init +copy_to_user + +copy_to_user + + + +loop_info64_to_compat->copy_to_user + + + + + +loop_set_fd->mutex_lock_killable + + + + + +loop_set_fd->mutex_unlock + + + + + +loop_set_fd->loop_reread_partitions + + + + + +loop_set_fd->module_put + + + + + +loop_set_fd->set_capacity + + + + + +loop_set_fd->bd_set_size + + + + + +loop_set_fd->kobject_uevent + + + + + +loop_set_fd->disk_to_dev + + + + + +fget + +fget + + + +loop_set_fd->fget + + - - -loop_register_transfer - -loop_register_transfer + + +loop_validate_file + +loop_validate_file + + + +loop_set_fd->loop_validate_file + + + + + +S_ISBLK + +S_ISBLK + + + +loop_set_fd->S_ISBLK + + + + + +get_loop_size + +get_loop_size + + + +loop_set_fd->get_loop_size + + + + + +loop_prepare_queue + +loop_prepare_queue + + + +loop_set_fd->loop_prepare_queue + + + + + +set_device_ro + +set_device_ro + + + +loop_set_fd->set_device_ro + + + + + +mapping_gfp_mask + +mapping_gfp_mask + + + +loop_set_fd->mapping_gfp_mask + + + + + +mapping_set_gfp_mask + +mapping_set_gfp_mask + + + +loop_set_fd->mapping_set_gfp_mask + + + + + +blk_queue_write_cache + +blk_queue_write_cache + + + +loop_set_fd->blk_queue_write_cache + + + + + +loop_update_dio + +loop_update_dio + + + +loop_set_fd->loop_update_dio + + + + + +loop_sysfs_init + +loop_sysfs_init + + + +loop_set_fd->loop_sysfs_init + + + + + +set_blocksize + +set_blocksize + + + +loop_set_fd->set_blocksize + + + + + +block_size + +block_size + + + +loop_set_fd->block_size + + + + + +bdgrab + +bdgrab + + + +loop_set_fd->bdgrab + + + + + +fput + +fput + + + +loop_set_fd->fput + + + + + +loop_change_fd->mutex_lock_killable + + + + + +loop_change_fd->blk_mq_freeze_queue + + + + + +loop_change_fd->blk_mq_unfreeze_queue + + + + + +loop_change_fd->mutex_unlock + + + + + +loop_change_fd->loop_reread_partitions + + + + + +loop_change_fd->fget + + + + + +loop_change_fd->loop_validate_file + + + + + +loop_change_fd->get_loop_size + + + + + +loop_change_fd->mapping_gfp_mask + + + + + +loop_change_fd->mapping_set_gfp_mask + + + + + +loop_change_fd->loop_update_dio + + + + + +loop_change_fd->fput + + + + + +loop_clr_fd->mutex_lock_killable + + + + + +loop_clr_fd->mutex_unlock + + + + + +atomic_read + +atomic_read + + + +loop_clr_fd->atomic_read + + - - -loop_init_request - -loop_init_request + + +loop_set_status_old->loop_set_status + + + + + +loop_set_status_old->copy_from_user + + + + + +loop_info64_from_old + +loop_info64_from_old + + + +loop_set_status_old->loop_info64_from_old + + + + + +loop_get_status_old->loop_get_status + + + + + +loop_get_status_old->copy_to_user + + + + + +loop_info64_to_old + +loop_info64_to_old + + + +loop_get_status_old->loop_info64_to_old + + + + + +loop_set_status64->loop_set_status + + + + + +loop_set_status64->copy_from_user + + + + + +loop_get_status64->loop_get_status + + + + + +loop_get_status64->copy_to_user + + + + + +lo_simple_ioctl->mutex_lock_killable + + + + + +lo_simple_ioctl->mutex_unlock + + + + + +loop_set_capacity + +loop_set_capacity + + + +lo_simple_ioctl->loop_set_capacity + + + + + +loop_set_dio + +loop_set_dio + + + +lo_simple_ioctl->loop_set_dio + + + + + +loop_set_block_size + +loop_set_block_size + + + +lo_simple_ioctl->loop_set_block_size + + + + + +loop_validate_file->S_ISBLK + + + + + +is_loop_device + +is_loop_device + + + +loop_validate_file->is_loop_device + + + + + +S_ISREG + +S_ISREG + + + +loop_validate_file->S_ISREG + + + + + +get_loop_size->get_size + + + + + +kthread_init_worker + +kthread_init_worker + + + +loop_prepare_queue->kthread_init_worker + + + + + +kthread_run + +kthread_run + + + +loop_prepare_queue->kthread_run + + + + + +loop_kthread_worker_fn + +loop_kthread_worker_fn + + + +loop_prepare_queue->loop_kthread_worker_fn + + + + + +IS_ERR + +IS_ERR + + + +loop_prepare_queue->IS_ERR + + + + + +set_user_nice + +set_user_nice + + + +loop_prepare_queue->set_user_nice + + + + + +io_is_direct + +io_is_direct + + + +loop_update_dio->io_is_direct + + + + + +loop_sysfs_init->disk_to_dev + + + + + +sysfs_create_group + +sysfs_create_group + + + +loop_sysfs_init->sysfs_create_group + + + + + +is_loop_device->S_ISBLK + + + + + +MAJOR + +MAJOR + + + +is_loop_device->MAJOR + + + + + +kthread_worker_fn + +kthread_worker_fn + + + +loop_kthread_worker_fn->kthread_worker_fn + + + + + +loop_info64_from_old->memset + + + + + +loop_info64_from_old->memcpy + + + + + +loop_info64_to_old->memset + + + + + +loop_info64_to_old->memcpy + + + + + +loop_set_capacity->figure_loop_size + + + + + +loop_set_capacity->unlikely + + + + + +loop_set_block_size->sync_blockdev + + + + + +loop_set_block_size->kill_bdev + + + + + +loop_set_block_size->blk_mq_freeze_queue + + + + + +loop_set_block_size->pr_warn + + + + + +loop_set_block_size->blk_mq_unfreeze_queue + + + + + +loop_set_block_size->loop_update_dio + + + + + +is_power_of_2 + +is_power_of_2 + + + +loop_set_block_size->is_power_of_2 + + + + + +blk_queue_logical_block_size + +blk_queue_logical_block_size + + + +loop_set_block_size->blk_queue_logical_block_size + + + + + +blk_queue_physical_block_size + +blk_queue_physical_block_size + + + +loop_set_block_size->blk_queue_physical_block_size + + + + + +blk_queue_io_min + +blk_queue_io_min + + + +loop_set_block_size->blk_queue_io_min + + + + + +lo_complete_rq + +lo_complete_rq + + + +blk_mq_rq_to_pdu + +blk_mq_rq_to_pdu + + + +lo_complete_rq->blk_mq_rq_to_pdu + + + + + +blk_rq_bytes + +blk_rq_bytes + + + +lo_complete_rq->blk_rq_bytes + + + + + +req_op + +req_op + + + +lo_complete_rq->req_op + + + + + +blk_update_request + +blk_update_request + + + +lo_complete_rq->blk_update_request + + + + + +blk_mq_requeue_request + +blk_mq_requeue_request + + + +lo_complete_rq->blk_mq_requeue_request + + + + + +zero_fill_bio + +zero_fill_bio + + + +lo_complete_rq->zero_fill_bio + + + + + +blk_mq_end_request + +blk_mq_end_request + + + +lo_complete_rq->blk_mq_end_request + + - + lo_open - -lo_open + +lo_open + + + +lo_open->mutex_lock_killable + + + + + +lo_open->mutex_unlock + + + + + +atomic_inc + +atomic_inc + + + +lo_open->atomic_inc + + + + + +lo_release + +lo_release + + + +lo_release->blk_mq_freeze_queue + + + + + +lo_release->blk_mq_unfreeze_queue + + + + + +lo_release->mutex_unlock + + + + + +mutex_lock + +mutex_lock + + + +lo_release->mutex_lock + + + + + +atomic_dec_return + +atomic_dec_return + + + +lo_release->atomic_dec_return + + + + + +loop_attr_autoclear_show + +loop_attr_autoclear_show + + + +sprintf + +sprintf + + + +loop_attr_autoclear_show->sprintf + + + + + +loop_attr_backing_file_show + +loop_attr_backing_file_show + + + +spin_lock_irq + +spin_lock_irq + + + +loop_attr_backing_file_show->spin_lock_irq + + + + + +file_path + +file_path + + + +loop_attr_backing_file_show->file_path + + + + + +spin_unlock_irq + +spin_unlock_irq + + + +loop_attr_backing_file_show->spin_unlock_irq + + + + + +IS_ERR_OR_NULL + +IS_ERR_OR_NULL + + + +loop_attr_backing_file_show->IS_ERR_OR_NULL + + + + + +PTR_ERR + +PTR_ERR + + + +loop_attr_backing_file_show->PTR_ERR + + + + + +strlen + +strlen + + + +loop_attr_backing_file_show->strlen + + + + + +memmove + +memmove + + + +loop_attr_backing_file_show->memmove + + + + + +loop_attr_dio_show + +loop_attr_dio_show + + + +loop_attr_dio_show->sprintf + + + + + +loop_attr_offset_show + +loop_attr_offset_show + + + +loop_attr_offset_show->sprintf + + + + + +loop_attr_partscan_show + +loop_attr_partscan_show + + + +loop_attr_partscan_show->sprintf + + + + + +loop_attr_show + +loop_attr_show + + + +dev_to_disk + +dev_to_disk + + + +loop_attr_show->dev_to_disk + + + + + +callback + +callback + + + +loop_attr_show->callback + + + + + +loop_attr_sizelimit_show + +loop_attr_sizelimit_show + + + +loop_attr_sizelimit_show->sprintf + + + + + +loop_control_ioctl + +loop_control_ioctl + + + +loop_control_ioctl->mutex_lock_killable + + + + + +loop_control_ioctl->mutex_unlock + + + + + +loop_control_ioctl->atomic_read + + + + + +loop_lookup + +loop_lookup + + + +loop_control_ioctl->loop_lookup + + + + + +loop_add + +loop_add + + + +loop_control_ioctl->loop_add + + + + + +idr_remove + +idr_remove + + + +loop_control_ioctl->idr_remove + + + + + +loop_remove + +loop_remove + + + +loop_control_ioctl->loop_remove + + + + + +idr_for_each + +idr_for_each + + + +loop_lookup->idr_for_each + + + + + +find_free_cb + +find_free_cb + + + +loop_lookup->find_free_cb + + + + + +idr_find + +idr_find + + + +loop_lookup->idr_find + + + + + +loop_add->blk_queue_flag_set + + + + + +loop_add->IS_ERR + + + + + +loop_add->sprintf + + + + + +loop_add->PTR_ERR + + + + + +loop_add->idr_remove + + + + + +kzalloc + +kzalloc + + + +loop_add->kzalloc + + + + + +idr_alloc + +idr_alloc + + + +loop_add->idr_alloc + + + + + +blk_mq_alloc_tag_set + +blk_mq_alloc_tag_set + + + +loop_add->blk_mq_alloc_tag_set + + + + + +blk_mq_init_queue + +blk_mq_init_queue + + + +loop_add->blk_mq_init_queue + + + + + +blk_queue_max_hw_sectors + +blk_queue_max_hw_sectors + + + +loop_add->blk_queue_max_hw_sectors + + + + + +alloc_disk + +alloc_disk + + + +loop_add->alloc_disk + + + + + +atomic_set + +atomic_set + + + +loop_add->atomic_set + + + + + +spin_lock_init + +spin_lock_init + + + +loop_add->spin_lock_init + + + + + +add_disk + +add_disk + + + +loop_add->add_disk + + + + + +blk_cleanup_queue + +blk_cleanup_queue + + + +loop_add->blk_cleanup_queue + + + + + +blk_mq_free_tag_set + +blk_mq_free_tag_set + + + +loop_add->blk_mq_free_tag_set + + + + + +kfree + +kfree + + + +loop_add->kfree + + + + + +loop_remove->blk_cleanup_queue + + + + + +loop_remove->blk_mq_free_tag_set + + + + + +loop_remove->kfree + + + + + +del_gendisk + +del_gendisk + + + +loop_remove->del_gendisk + + + + + +put_disk + +put_disk + + + +loop_remove->put_disk + + - + loop_exit - -loop_exit + +loop_exit + + + +loop_exit->idr_for_each + + + + + +loop_exit_cb + +loop_exit_cb + + + +loop_exit->loop_exit_cb + + + + + +idr_destroy + +idr_destroy + + + +loop_exit->idr_destroy + + + + + +blk_unregister_region + +blk_unregister_region + + + +loop_exit->blk_unregister_region + + + + + +MKDEV + +MKDEV + + + +loop_exit->MKDEV + + + + + +unregister_blkdev + +unregister_blkdev + + + +loop_exit->unregister_blkdev + + + + + +misc_deregister + +misc_deregister + + + +loop_exit->misc_deregister + + + + + +loop_exit_cb->loop_remove + + + + + +loop_init + +loop_init + + + +loop_init->mutex_unlock + + + + + +loop_init->mutex_lock + + + + + +loop_init->loop_add + + + + + +loop_init->MKDEV + + + + + +loop_init->misc_deregister + + + + + +fls + +fls + + + +loop_init->fls + + + + + +misc_register + +misc_register + + + +loop_init->misc_register + + + + + +register_blkdev + +register_blkdev + + + +loop_init->register_blkdev + + + + + +blk_register_region + +blk_register_region + + + +loop_init->blk_register_region + + + + + +loop_probe + +loop_probe + + + +loop_init->loop_probe + + + + + +printk + +printk + + + +loop_init->printk + + + + + +loop_probe->mutex_unlock + + + + + +loop_probe->mutex_lock + + + + + +loop_probe->loop_lookup + + + + + +loop_probe->loop_add + + + + + +MINOR + +MINOR + + + +loop_probe->MINOR + + + + + +get_disk_and_module + +get_disk_and_module + + + +loop_probe->get_disk_and_module + + + + + +loop_init_request + +loop_init_request + + + +loop_init_request->blk_mq_rq_to_pdu + + + + + +kthread_init_work + +kthread_init_work + + + +loop_init_request->kthread_init_work + + + + + +loop_queue_work + +loop_queue_work + + + +loop_init_request->loop_queue_work + + + + + +container_of + +container_of + + + +loop_queue_work->container_of + + + + + +loop_handle_cmd + +loop_handle_cmd + + + +loop_queue_work->loop_handle_cmd + + + + + +loop_handle_cmd->req_op + + + + + +blk_mq_rq_from_pdu + +blk_mq_rq_from_pdu + + + +loop_handle_cmd->blk_mq_rq_from_pdu + + + + + +op_is_write + +op_is_write + + + +loop_handle_cmd->op_is_write + + + + + +do_req_filebacked + +do_req_filebacked + + + +loop_handle_cmd->do_req_filebacked + + + + + +blk_mq_complete_request + +blk_mq_complete_request + + + +loop_handle_cmd->blk_mq_complete_request + + + + + +do_req_filebacked->blk_mq_rq_to_pdu + + + + + +do_req_filebacked->req_op + + + + + +blk_rq_pos + +blk_rq_pos + + + +do_req_filebacked->blk_rq_pos + + + + + +lo_req_flush + +lo_req_flush + + + +do_req_filebacked->lo_req_flush + + + + + +lo_discard + +lo_discard + + + +do_req_filebacked->lo_discard + + + + + +lo_write_transfer + +lo_write_transfer + + + +do_req_filebacked->lo_write_transfer + + + + + +lo_rw_aio + +lo_rw_aio + + + +do_req_filebacked->lo_rw_aio + + + + + +lo_write_simple + +lo_write_simple + + + +do_req_filebacked->lo_write_simple + + + + + +lo_read_transfer + +lo_read_transfer + + + +do_req_filebacked->lo_read_transfer + + + + + +lo_read_simple + +lo_read_simple + + + +do_req_filebacked->lo_read_simple + + + + + +WARN_ON_ONCE + +WARN_ON_ONCE + + + +do_req_filebacked->WARN_ON_ONCE + + + + + +lo_req_flush->unlikely + + + + + +vfs_fsync + +vfs_fsync + + + +lo_req_flush->vfs_fsync + + + + + +lo_discard->unlikely + + + + + +lo_discard->blk_rq_bytes + + + + + +lo_write_transfer->unlikely + + + + + +alloc_page + +alloc_page + + + +lo_write_transfer->alloc_page + + + + + +rq_for_each_segment + +rq_for_each_segment + + + +lo_write_transfer->rq_for_each_segment + + + + + +lo_do_transfer + +lo_do_transfer + + + +lo_write_transfer->lo_do_transfer + + + + + +lo_write_bvec + +lo_write_bvec + + + +lo_write_transfer->lo_write_bvec + + + + + +lo_rw_aio->blk_rq_bytes + + + + + +lo_rw_aio->atomic_set + + + + + +lo_rw_aio->blk_mq_rq_from_pdu + + + + + +iov_iter_bvec + +iov_iter_bvec + + + +lo_rw_aio->iov_iter_bvec + + + + + +rq_for_each_bvec + +rq_for_each_bvec + + + +lo_rw_aio->rq_for_each_bvec + + + + + +kmalloc_array + +kmalloc_array + + + +lo_rw_aio->kmalloc_array + + + + + +lo_rw_aio_complete + +lo_rw_aio_complete + + + +lo_rw_aio->lo_rw_aio_complete + + + + + +lo_rw_aio_do_completion + +lo_rw_aio_do_completion + + + +lo_rw_aio->lo_rw_aio_do_completion + + + + + +IOPRIO_PRIO_VALUE + +IOPRIO_PRIO_VALUE + + + +lo_rw_aio->IOPRIO_PRIO_VALUE + + + + + +kthread_associate_blkcg + +kthread_associate_blkcg + + + +lo_rw_aio->kthread_associate_blkcg + + + + + +call_write_iter + +call_write_iter + + + +lo_rw_aio->call_write_iter + + + + + +call_read_iter + +call_read_iter + + + +lo_rw_aio->call_read_iter + + + + + +lo_write_simple->rq_for_each_segment + + + + + +lo_write_simple->lo_write_bvec + + + + + +cond_resched + +cond_resched + + + +lo_write_simple->cond_resched + + + + + +lo_read_transfer->unlikely + + + + + +lo_read_transfer->zero_fill_bio + + + + + +lo_read_transfer->alloc_page + + + + + +lo_read_transfer->rq_for_each_segment + + + + + +lo_read_transfer->lo_do_transfer + + + + + +lo_read_transfer->iov_iter_bvec + + + + + +vfs_iter_read + +vfs_iter_read + + + +lo_read_transfer->vfs_iter_read + + + + + +flush_dcache_page + +flush_dcache_page + + + +lo_read_transfer->flush_dcache_page + + + + + +lo_read_simple->zero_fill_bio + + + + + +lo_read_simple->rq_for_each_segment + + + + + +lo_read_simple->iov_iter_bvec + + + + + +lo_read_simple->cond_resched + + + + + +lo_read_simple->vfs_iter_read + + + + + +lo_read_simple->flush_dcache_page + + + + + +likely + +likely + + + +lo_do_transfer->likely + + + + + +printk_ratelimited + +printk_ratelimited + + + +lo_do_transfer->printk_ratelimited + + + + + +lo_write_bvec->likely + + + + + +lo_write_bvec->printk_ratelimited + + + + + +lo_write_bvec->iov_iter_bvec + + + + + +file_start_write + +file_start_write + + + +lo_write_bvec->file_start_write + + + + + +vfs_iter_write + +vfs_iter_write + + + +lo_write_bvec->vfs_iter_write + + + + + +file_end_write + +file_end_write + + + +lo_write_bvec->file_end_write + + + + + +lo_rw_aio_complete->container_of + + + + + +lo_rw_aio_complete->lo_rw_aio_do_completion + + + + + +css_put + +css_put + + + +lo_rw_aio_complete->css_put + + + + + +lo_rw_aio_do_completion->kfree + + + + + +lo_rw_aio_do_completion->blk_mq_rq_from_pdu + + + + + +lo_rw_aio_do_completion->blk_mq_complete_request + + + + + +atomic_dec_and_test + +atomic_dec_and_test + + + +lo_rw_aio_do_completion->atomic_dec_and_test + + + + + +loop_queue_rq + +loop_queue_rq + + + +loop_queue_rq->blk_mq_rq_to_pdu + + + + + +loop_queue_rq->req_op + + + + + +blk_mq_start_request + +blk_mq_start_request + + + +loop_queue_rq->blk_mq_start_request + + + + + +bio_blkcg + +bio_blkcg + + + +loop_queue_rq->bio_blkcg + + + + + +css_get + +css_get + + + +loop_queue_rq->css_get + + + + + +kthread_queue_work + +kthread_queue_work + + + +loop_queue_rq->kthread_queue_work + + + + + +loop_register_transfer + +loop_register_transfer + + + +loop_unregister_transfer + +loop_unregister_transfer + + + +loop_unregister_transfer->idr_for_each + + + + + +unregister_transfer_cb + +unregister_transfer_cb + + + +loop_unregister_transfer->unregister_transfer_cb + + + + + +unregister_transfer_cb->loop_release_xfer + + + + + +unregister_transfer_cb->mutex_unlock + + + + + +unregister_transfer_cb->mutex_lock + + + + + +max_loop_setup + +max_loop_setup + + + +simple_strtol + +simple_strtol + + + +max_loop_setup->simple_strtol + + + + + +transfer_xor + +transfer_xor + + + +transfer_xor->cond_resched + + + + + +kmap_atomic + +kmap_atomic + + + +transfer_xor->kmap_atomic + + + + + +kunmap_atomic + +kunmap_atomic + + + +transfer_xor->kunmap_atomic + + + + + +xor_init + +xor_init + + + +xor_init->unlikely + + -- cgit v1.2.3-55-g7522