函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\blk-sysfs.c Create Date:2022-07-27 18:37:29
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:lk_register_queue - register a block layer queue with sysfs*@disk: Disk of which the request queue should be registered with sysfs.

函数原型:int blk_register_queue(struct gendisk *disk)

返回类型:int

参数:

类型参数名称
struct gendisk *disk
933  dev等于disk_to_dev(disk)
934  q等于queue
935  bool has_elevator = false
937  如果WARN_ON(!q)则返回:负ENXIO
940  WARN_ONCE(blk_queue_registered(q), "%s is registering an already registered queue\n", kobject_name( & kobj))
953  如果非blk_queue_init_done(q)则
954  lk_queue_flag_set - atomically set a queue flag*@flag: flag to be set*@q: request queue
955  percpu_ref_switch_to_percpu - switch a percpu_ref to percpu mode*@ref: percpu_ref to switch to percpu mode* There's no reason to use this function for the usual reference counting.* To re-use an expired ref, use percpu_ref_reinit().
958  ret等于blk_trace_init_sysfs(dev)
959  如果ret则返回:ret
962  mutex_lock( & sysfs_dir_lock)
964  ret等于kobject_add() - The main kobject add function.*@kobj: the kobject to add*@parent: pointer to the parent of the kobject.*@fmt: format to name the kobject with.* The kobject name is set and added to the kobject hierarchy in this* function.
965  如果ret小于0则
966  blk_trace_remove_sysfs(dev)
967  转到:unlock
970  ret等于sysfs_create_group( & * queue kobject, & queue_attr_group)
971  如果ret
972  blk_trace_remove_sysfs(dev)
973  解除对象
974  递减引用计数对象
975  转到:unlock
978  如果queue_is_mq(q)则
979  __blk_mq_register_dev(dev, q)
980  blk_mq_debugfs_register(q)
983  mutex_lock( & sysfs_lock)
984  如果elevator
985  ret等于lv_register_queue is called from either blk_register_queue or* elevator_switch, elevator switch is prevented from being happen* in the two paths, so it is safe to not hold q->sysfs_lock.
986  如果ret
989  解除对象
992  返回:ret
994  has_elevator = true
997  lk_queue_flag_set - atomically set a queue flag*@flag: flag to be set*@q: request queue
998  wbt_enable_default(q)
999  blk_throtl_register_queue(q)
1002  通过发送一个uevent通知用户空间
1003  如果has_elevator通过发送一个uevent通知用户空间
1005  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
1007  ret等于0
1008  unlock :
1009  mutex_unlock - release the mutex*@lock: the mutex to be released* Unlock a mutex that has been locked by this task previously.* This function must not be used in interrupt context. Unlocking* of a not locked mutex is not allowed.
1010  返回:ret
调用者
名称描述
__device_add_disk__device_add_disk - add disk information to kernel list*@parent: parent device for the disk*@disk: per-device partitioning information*@groups: Additional per-device sysfs groups*@register_queue: register the queue if set to true* This function registers