函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\locking\mutex.c Create Date:2022-07-27 10:47:52
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:mutex_lock_nested

函数原型:void __sched mutex_lock_nested(struct mutex *lock, unsigned int subclass)

返回类型:void

参数:

类型参数名称
struct mutex *lock
unsigned intsubclass
1118  __mutex_lock(lock, 深度睡眠态, subclass, NULL, _RET_IP_)
调用者
名称描述
software_resumesoftware_resume - Resume from a saved hibernation image.* This routine is called as a late initcall, when all devices have been* discovered and initialized already.* The image reading code is called to see if there is a hibernation image
acct_on
perf_event_ctx_lock_nestedBecause of perf_event::ctx migration in sys_perf_event_open::move_group and* perf_pmu_migrate_context() we need some magic.* Those places that change perf_event::ctx will hold both* perf_event_ctx::mutex of the 'old' and 'new' ctx value.
perf_remove_from_ownerRemove user event from the owner task.
mutex_lock_double
blkpg_ioctl
ns_revision_read
ns_revision_poll
ns_mkdir_op
ns_rmdir_op
__aafs_ns_rmdirRequires: @ns->lock held
__aafs_ns_mkdirRequires: @ns->lock held
__next_ns__next_ns - find the next namespace to list*@root: root namespace to stop search at (NOT NULL)*@ns: current ns position (NOT NULL)* Find the next namespace from @ns under @root and handle all locking needed* while switching current namespace
p_startp_start - start a depth first traversal of profile tree*@f: seq_file to fill*@pos: current position* Returns: first profile under current namespace or NULL if none found* acquires first ns->lock
aa_create_aafsaa_create_aafs - create the apparmor security filesystem* dentries created here are released by aa_destroy_aafs* Returns: error on failure
aa_new_null_profileaa_new_null_profile - create or find a null-X learning profile*@parent: profile that caused this profile to be created (NOT NULL)*@hat: true if the null- learning profile is a hat*@base: name to base the null profile off of*@gfp: type of allocation
aa_replace_profilesaa_replace_profiles - replace profile(s) on the profile list*@policy_ns: namespace load is occurring on*@label: label that is attempting to load/replace policy*@mask: permission mask*@udata: serialized data stream (NOT NULL)* unpack and replace a profile
aa_remove_profilesaa_remove_profiles - remove profile(s) from the system*@policy_ns: namespace the remove is being done from*@subj: label attempting to remove policy*@fqname: name of the profile or namespace to remove (NOT NULL)*@size: size of the name* Remove a profile or
do_loaddata_freed to take the ns mutex lock which is NOT safe most places that* put_loaddata is called, so we have to delay freeing it
__aa_create_ns
aa_prepare_nsaa_prepare_ns - find an existing or create a new namespace of @name*@parent: ns to treat as parent*@name: the namespace to find or add (NOT NULL)* Returns: refcounted namespace or PTR_ERR if failed to create one
destroy_nsdestroy_ns - remove everything contained by @ns*@ns: namespace to have it contents removed (NOT NULL)
__aa_labelset_update_subtree__aa_labelset_udate_subtree - update all labels with a stale component*@ns: ns to start update at (NOT NULL)* Requires: @ns lock be held* Invalidates labels based on @p in @ns and any children namespaces.
__pipe_lock
__blkdev_getd_mutex locking:* mutex_lock(part->bd_mutex)* mutex_lock_nested(whole->bd_mutex, 1)
__blkdev_put
fsnotify_destroy_mark
fsnotify_clear_marks_by_groupClear any marks in a group with given type mask
ep_scan_ready_listp_scan_ready_list - Scans the ready list in a way that makes possible for* the scan code, to call f_op->poll(). Also allows for* O(NumReady) performance.*@ep: Pointer to the epoll private data structure.*@sproc: Pointer to the scan callback.
eventpoll_release_fileThis is called from eventpoll_release() to unlink files from the eventpoll* interface. We need to have this facility to cleanup correctly files that are* closed without being removed from the eventpoll interface.
ep_loop_check_procp_loop_check_proc - Callback function to be passed to the @ep_call_nested()* API, to verify that adding an epoll file inside another* epoll structure, does not violate the constraints, in* terms of closed loops, or too deep chains (which can
SYSCALL_DEFINE4The following function implements the controller interface for* the eventpoll file that enables the insertion/removal/change of* file descriptors inside the interest set.
pipe_lock_nestedWe use head and tail indices that aren't masked off, except at the point of* dereference, but rather they're allowed to wrap naturally. This means there* isn't a dead spot in the buffer, but the ring has to be a power of two and* <= 2^31.