函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:lease a read lock

函数原型:void up_read(struct rw_semaphore *sem)

返回类型:void

参数:

类型参数名称
struct rw_semaphore *sem
1576  rwsem_release( & dep_map, _RET_IP_)
1577  lock after reading
调用者
名称描述
digsig_verify_rsaRSA公钥签名验证
exit_mmTurn us into a lazy TLB process if we* aren't already..
SYSCALL_DEFINE1
SYSCALL_DEFINE1Old cruft
SYSCALL_DEFINE1
SYSCALL_DEFINE2
prctl_set_mm_exe_file
prctl_set_mm
usermodehelper_read_trylock
usermodehelper_read_lock_wait
usermodehelper_read_unlock
__blocking_notifier_call_chain__blocking_notifier_call_chain - Call functions in a blocking notifier chain*@nh: Pointer to head of the blocking notifier chain*@val: Value passed unmodified to notifier function*@v: Pointer passed unmodified to notifier function
proc_sched_autogroup_show_task
torture_rwsem_up_read
get_posix_clockReturns NULL if the posix_clock instance attached to 'fp' is old and stale.
put_posix_clock
posix_clock_open
fault_in_user_writeableault_in_user_writeable() - Fault in user address and verify RW access*@uaddr: pointer to faulting user space address* Slow path to fixup the fault we just took in the atomic write* access to @uaddr
acct_collectacct_collect - collect accounting information into pacct_struct*@exitcode: task exit code*@group_dead: not 0, if this thread is the last one in the process.
clone_uts_nsClone a new ns copying an original utsname, setting refcount to 1*@old_ns: namespace to clone* Return ERR_PTR(-ENOMEM) on error (failure to allocate), new ns otherwise
proc_do_uts_stringSpecial case of dostring for the UTS structure. This has locks* to observe. Should this be in kernel/sys.c ????
send_cpu_listenersSend taskstats data in @skb to listeners registered for @cpu's exit data
seq_print_user_ip
trace_event_read_unlock
bpf_prog_offload_verifier_prep
bpf_prog_offload_verify_insn
bpf_prog_offload_finalize
bpf_prog_offload_replace_insn
bpf_prog_offload_remove_insns
bpf_prog_offload_translate
bpf_prog_offload_info_fill_ns
bpf_prog_offload_info_fill
bpf_map_offload_lookup_elem
bpf_map_offload_update_elem
bpf_map_offload_delete_elem
bpf_map_offload_get_next_key
bpf_map_offload_info_fill_ns
bpf_offload_dev_match
bpf_offload_prog_map_match
stack_map_get_build_id_offset
perf_event_addr_filters_applyUpdate event's address range filters based on the* task's existing mappings, if any.
filter_chain
unapply_uprobe
find_active_uprobe
handler_chain
handle_uretprobe_chain
__lock_page_or_retryReturn values:* 1 - page is locked; mmap_sem is still held
lock_page_maybe_drop_mmaplock_page_maybe_drop_mmap - lock the page, possibly dropping the mmap_sem*@vmf - the vm_fault for this fault.*@page - the page to lock.*@fpin - the pointer to the file we may pin (or is already pinned).
oom_reap_task_mmReaps the address space of the give task.* Returns true on success and false if none or part of the address space* has been reclaimed and the caller should retry later.
shrink_slab_memcg
shrink_slabshrink_slab - shrink slab caches*@gfp_mask: allocation context*@nid: node whose slab caches to target*@memcg: memory cgroup whose slab caches to target*@priority: the reclaim priority* Call the shrink functions to age shrinkable caches
__get_user_pages_locked
__mm_populate__mm_populate - populate and/or mlock pages within a range of address space.* This is used to implement mlock() and the MAP_POPULATE / MAP_LOCKED mmap* flags. VMAs must be already marked with the desired vm_flags, and* mmap_sem must not be held.
get_user_pages_unlockedget_user_pages_unlocked() is suitable to replace the form:* down_read(&mm->mmap_sem);* get_user_pages(tsk, mm,
__gup_longterm_unlocked
__access_remote_vm
__access_remote_vmAccess another process' address space as given in mm. If non-NULL, use the* given task for page fault accounting.
print_vma_addrPrint the name of a VMA.
SYSCALL_DEFINE3The mincore(2) system call
SYSCALL_DEFINE1
__vm_munmap
SYSCALL_DEFINE5Expand (or shrink) an existing mapping, potentially moving it at the* same time (controlled by the MREMAP_MAYMOVE flag and available VM space)* MREMAP_FIXED option added 5-Dec-1999 by Benjamin LaHaise* This option implies MREMAP_MAYMOVE.
SYSCALL_DEFINE3MS_SYNC syncs the entire file - including mappings
page_lock_anon_vma_readSimilar to page_get_anon_vma() except it locks the anon_vma.* Its a little more complex as it tries to keep the fast path to a single* atomic op -- the trylock. If we fail the trylock, we fall back to getting a
process_vm_rw_single_vecprocess_vm_rw_single_vec - read/write pages from task specified*@addr: start memory address of target process*@len: size of area to copy to/from*@iter: where to copy to/from locally*@process_pages: struct pages area that can store at least*
madvise_willneedSchedule all required I/O operations. Do not wait for completion.
madvise_removeApplication wants to free up the pages and associated backing store.* This is effectively punching a hole into the middle of a file.
SYSCALL_DEFINE3The madvise(2) system call
unuse_mm
lookup_node
do_get_mempolicyRetrieve NUMA policy
do_migrate_pagesMove pages between the two nodesets so as to preserve the physical* layout as much as possible.* Returns the number of page that could not be moved.
break_cow
get_mergeable_page
try_to_merge_with_ksm_pagery_to_merge_with_ksm_page - like try_to_merge_two_pages,* but no new kernel page is allocated: kpage must already be a ksm page.* This function returns 0 if the pages were merged, -EFAULT otherwise.
cmp_and_merge_pagemp_and_merge_page - first see if page can be merged into the stable tree;* if not, compare checksum to previous and if it's the same, see if page can* be inserted into the unstable tree, or merged with a page already there and
scan_get_next_rmap_item
add_page_for_migrationResolves the given address to a struct page, isolates it from the LRU and* puts it to the given pagelist
do_pages_stat_arrayDetermine the nodes of an array of pages and store it in an array of status.
collapse_huge_page
khugepaged_scan_mm_slot
mem_cgroup_count_precharge
mem_cgroup_move_charge
__mcopy_atomic_hugetlb__mcopy_atomic processing for HUGETLB vmas. Note that this routine is* called with mmap_sem held, it will release mmap_sem before returning.
__mcopy_atomic
get_vaddr_framesget_vaddr_frames() - map virtual addresses to pfns*@start: starting user address*@nr_frames: number of pages / pfns from start to map*@gup_flags: flags modifying lookup behaviour*@vec: structure which receives pages / pfns of the addresses mapped.
msgctl_info
semctl_info
exit_shmLocking assumes this will only be called with task == current
shmctl_ipc_info
shmctl_shm_info
get_gendiskget_gendisk - get partitioning information for a given device*@devt: device to get partitioning information for*@partno: returned partition index* This function gets the structure containing partitioning* information for the given device @devt.
key_type_putUnlock a key type locked by key_type_lookup().
unregister_key_typeregister_key_type - Unregister a type of key.*@ktype: The key type.* Unregister a key type and mark all the extant keys of this type as dead.* Those keys of this type are then destroyed to get rid of their payloads and
keyctl_read_keyRead a key's payload
lookup_user_keyLook up a key ID given us by userspace with a given permissions mask to get* the key it refers to.* Flags can be passed to request that special keyrings be created if referred* to directly, to permit partially constructed keys to be found and to skip
construct_get_dest_keyringGet the appropriate destination keyring for the request.* The keyring selected is returned with an extra reference upon it which the* caller must release.
request_key_auth_newCreate an authorisation token for /sbin/request-key or whoever to gain* access to the caller's security data.
key_get_persistentGet the persistent keyring for a specific UID and link it to the nominated* keyring.
dh_data_from_key
request_user_keyquest_user_key - request the user key* Use a user provided key to encrypt/decrypt an encrypted-key.
encrypted_key_decrypt
encrypted_readrypted_read - format and copy the encrypted data to userspace* The resulting datablob format is:* * On success, return to userspace the encrypted key datablob size.
evm_init_keyGet the key from the TPM for the SHA1-HMAC
trylock_superrylock_super - try to grab ->s_umount shared*@sb: reference we are trying to grab* Try to prevent fs shutdown. This is used in places where we* cannot take an active reference but we need to ensure that the
drop_super
iterate_supersrate_supers - call function for all active superblocks*@f: function to call*@arg: argument to pass to it* Scans the superblock list and calls given function, passing it* locked superblock and given argument.
iterate_supers_typerate_supers_type - call function for superblocks of given type*@type: fs type*@f: function to call*@arg: argument to pass to it* Scans the superblock list and calls given function, passing it* locked superblock and given argument.
__get_super
__get_super_thawed
user_get_super
exec_mmap
__d_unaliasThis helper attempts to cope with remotely renamed directories* It assumes that the caller is already holding* Note: If ever the locking in lock_rename() changes, then please* remember to update this too...
__is_local_mountpoint__is_local_mountpoint - Test to see if dentry is a mountpoint in the* current mount namespace
m_stop
may_umountmay_umount - check if a mount point is busy*@mnt: root of mount* This is called to check if a mount point has any* open files, pwds, chroots or sub mounts. If the* mount has sub mounts this will return busy* regardless of whether the sub mounts are busy.
mnt_already_visible
__writeback_inodes_wb
try_to_writeback_inodes_sbry_to_writeback_inodes_sb - try to start writeback if none underway*@sb: the superblock*@reason: reason why some writeback work was initiated* Invoke __writeback_inodes_sb_nr if no writeback is currently underway.
SYSCALL_DEFINE1sync a single super
handle_userfaultThe locking rules involved in returning VM_FAULT_RETRY depending on* FAULT_FLAG_ALLOW_RETRY, FAULT_FLAG_RETRY_NOWAIT and* FAULT_FLAG_KILLABLE are not straightforward
userfaultfd_remove
io_sqe_buffer_register
try_to_lock_encrypted_files
fscrypt_ioctl_get_key_statusRetrieve the status of an fscrypt master encryption key
setup_file_encryption_keyFind the master key, then set up the inode's actual encryption key.* If the master key is found in the filesystem-level keyring, then the* corresponding 'struct key' is returned in *master_key_ret with* ->mk_secret_sem read-locked
fscrypt_get_encryption_info
find_and_lock_process_keySearch the current task's subscribed keyrings for a "logon" key with* description prefix:descriptor, and if found acquire a read lock on it and* return a pointer to its validated payload in *payload_ret.
fscrypt_setup_v1_file_key_via_subscribed_keyrings
format_corenamermat_corename will inspect the pattern parameter, and output a* name into corename, which must have space for at least* CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.
dquot_disableTurn quota off on a device. type == -1 ==> quotaoff for all types (umount)
dquot_load_quota_sb
dquot_resumeReenable quotas on remount RW
v1_read_file_info
v2_read_file_infoRead information header from quota file
v2_read_dquot
v2_write_dquot
v2_get_next_id
test_func
read_ldt
sysvipc_proc_stop
key_type_lookupFind and lock the specified key type against removal.* We return with the sem read-locked if successful. If the type wasn't* available -ENOKEY is returned instead.
selinux_xfrm_notify_policyload
super_cache_scanOne thing we have to be careful of with a per-sb shrinker is that we don't* drop the last active reference to the superblock from within the shrinker.* If that happens we could trigger unregistering the shrinker from within the