Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\locking\rwsem.c Create Date:2022-07-28 09:48:30
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:lock for writing

Proto:void __sched down_write(struct rw_semaphore *sem)

Type:void

Parameter:

TypeParameterName
struct rw_semaphore *sem
1533  might_sleep()
1534  rwsem_acquire( & dep_map, 0, 0, _RET_IP_)
1535  LOCK_CONTENDED(sem, __down_write_trylock, lock for writing)
Caller
NameDescribe
SYSCALL_DEFINE2Only setdomainname; getdomainname can be implemented by calling* uname()
__usermodehelper_set_disable_depth__usermodehelper_set_disable_depth - Modify usermodehelper_disabled.*@depth: New value to assign to usermodehelper_disabled.* Change the value of usermodehelper_disabled (under umhelper_sem locked for* writing) and wakeup tasks waiting for it to change.
__usermodehelper_disable__usermodehelper_disable - Prevent new helpers from being started.*@depth: New value to assign to usermodehelper_disabled.* Set usermodehelper_disabled to @depth and wait for running helpers to exit.
blocking_notifier_chain_registerlocking_notifier_chain_register - Add notifier to a blocking notifier chain*@nh: Pointer to head of the blocking notifier chain*@n: New entry in notifier chain* Adds a notifier to a blocking notifier chain.* Must be called in process context.
blocking_notifier_chain_unregisterlocking_notifier_chain_unregister - Remove notifier from a blocking notifier chain*@nh: Pointer to head of the blocking notifier chain*@n: Entry to remove from notifier chain* Removes a notifier from a blocking notifier chain.
proc_sched_autogroup_set_nice
percpu_down_write
torture_rwsem_down_write
posix_clock_unregister
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
add_del_listener
register_trace_eventgister_trace_event - register output for an event type*@event: the event type to register* Event types are stored in a hash and this hash is used to* find a way to print an event
unregister_trace_eventregister_trace_event - remove a no longer used event*@event: the event to remove
trace_event_eval_update
trace_remove_event_callRemove an event_call
trace_module_remove_events
event_trace_add_tracervent_trace_add_tracer - add a instance of a trace_array to events*@parent: The parent dentry to place the files/directories for events in*@tr: The trace array associated with these events* When a new instance is created, it needs to set up its events
early_event_add_tracerThe top trace array already had its file descriptors created.* Now the files themselves need to be created.
event_trace_del_tracerMust be called with event_mutex held
bpf_prog_offload_init
bpf_prog_offload_destroy
bpf_map_offload_map_alloc
bpf_map_offload_map_free
bpf_offload_dev_netdev_register
bpf_offload_dev_netdev_unregister
bpf_offload_dev_create
consumer_add
consumer_delFor uprobe @uprobe, delete the consumer @uc.* Return true if the @uc is deleted successfully* or return false.
prepare_uprobe
register_for_each_vma
uprobe_unregisterprobe_unregister - unregister an already registered probe.*@inode: the file in which the probe has to be removed.*@offset: offset from the start of the file.*@uc: identify which probe if multiple probes are colocated.
__uprobe_register__uprobe_register - register a probe*@inode: the file in which the probe has to be placed
uprobe_applyprobe_apply - unregister an already registered probe.*@inode: the file in which the probe has to be removed.*@offset: offset from the start of the file.*@uc: consumer which wants to add more or remove some breakpoints*@add: add or remove the breakpoints
unregister_memcg_shrinker
register_shrinker_prepared
unregister_shrinkerRemove one
account_locked_vmaccount_locked_vm - account locked pages to an mm's locked_vm*@mm: mm to account against, may be NULL*@pages: number of pages to account*@inc: %true if @pages should be considered positive, %false if not* Assumes a non-NULL @mm is valid (i
__vmalloc_user_flags
put_nommu_regionlease a reference to a region
do_mmaphandle mapping creation for uClinux
split_vmasplit a vma into two pieces at address 'addr', a new vma is allocated either* for the first part or the tail.
shrink_vmashrink a VMA by removing the specified chunk from either the beginning or* the end
vm_munmap
SYSCALL_DEFINE5
nommu_shrink_inode_mappingsmmu_shrink_inode_mappings - Shrink the shared mappings on an inode*@inode: The inode to check*@size: The current filesize of the inode*@newsize: The proposed filesize of the inode* Check the shared mappings on an inode on behalf of a shrinking truncate
exit_mmapRelease all mmaps.
lock_anon_vma_rootThis is a useful helper function for locking the anon_vma root as* we traverse the vma->anon_vma_chain, looping over anon_vma's that* have the same vma.* Such anon_vma's should have the same root, so you'd expect to see
mpol_rebind_mmRebind each vma in mm to new nodemask.* Call holding a reference to mm. Takes mm->mmap_sem during call.
do_mbind
mmu_notifier_registermmu_notifier_register - Register a notifier on a mm*@mn: The notifier to attach*@mm: The mm to attach the notifier to* Must not hold mmap_sem nor any other VM related lock when calling* this registration function
__ksm_exit
__khugepaged_exit
collapse_huge_page
ipcget_publicpcget_public - get an ipc object or create a new one*@ns: ipc namespace*@ids: ipc identifier set*@ops: the actual creation routine to call*@params: its parameters* This routine is called by sys_msgget, sys_semget() and sys_shmget()
msgctl_downThis function handles some msgctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function.
semctl_downThis function handles some semctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function.
shm_close
shm_destroy_orphaned
exit_shmLocking assumes this will only be called with task == current
shmctl_downThis function handles some shmctl commands which require the rwsem* to be held in write mode.* NOTE: no locks must be held, the rwsem is taken inside this function.
do_shmatFix shmaddr, allocate descriptor, map shm, add attach descriptor to lists.* NOTE! Despite the name, this is NOT a direct system call entrypoint. The* "raddr" thing points to kernel space, and there has to be a wrapper around* this.
free_ipcs_ipcs - free all ipcs of one type*@ns: the namespace to remove the ipcs from*@ids: the table of ipcs to free*@free: the function called to free each individual ipc* Called for each kind of ipc when an ipc_namespace exits.
key_set_timeout
__key_updateAttempt to update an existing key.* The key is given to us with an incremented refcount that we need to discard* if we get an error.
key_updatekey_update - Update a key's contents.*@key_ref: The pointer (plus possession flag) to the key.*@payload: The data to be used to update the key.*@plen: The length of @payload.* Attempt to update the contents of a key with the given payload data. The
register_key_typegister_key_type - Register a type of key.*@ktype: The new key type.* Register a new key type.* Returns 0 on success or -EEXIST if a type of this name already exists.
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
keyring_restrictkeyring_restrict - Look up and apply a restriction to a keyring*@keyring_ref: The keyring to be restricted*@type: The key type that will provide the restriction checker.*@restriction: The restriction options to apply to the keyring
__key_link_lockLock keyring for link.
__key_move_lockLock keyrings for move (link/unlink combination).
__key_unlink_lockLock a keyring for unlink.
keyring_clearkeyring_clear - Clear a keyring*@keyring: The keyring to clear.* Clear the contents of the specified keyring.* Returns 0 if successful or -ENOTDIR if the keyring isn't a keyring.
keyring_gcGarbage collect pointers from a keyring.* Not called with any locks held. The keyring's key struct will not be* deallocated under us as only our caller may deallocate it.
keyring_restriction_gcGarbage collect restriction pointers from a keyring
keyctl_chown_keyChange the ownership of a key* The key must grant the caller Setattr permission for this to work, though* the key need not be fully instantiated yet. For the UID to be changed, or* for the GID to be changed to a group the caller is not a member of, the
keyctl_setperm_keyChange the permission mask on a key.* The key must grant the caller Setattr permission for this to work, though* the key need not be fully instantiated yet. If the caller does not have
get_user_registerGet or create a user register keyring.
look_up_user_keyringsLook up the user and user session keyrings for the current process's UID,* creating them if they don't exist.
key_fsuid_changedHandle the fsuid changing.
key_fsgid_changedHandle the fsgid changing.
key_get_persistentGet the persistent keyring for a specific UID and link it to the nominated* keyring.
grab_supergrab_super - acquire an active reference*@s: reference we are trying to make active* Tries to acquire an active reference. grab_super() is used when we* had just found a superblock in super_blocks or fs_type->fs_supers
__get_super
reconfigure_supergure_super - asks filesystem to change superblock parameters*@fc: The superblock and configuration* Alters the configuration parameters of a live superblock.
do_emergency_remount_callback
do_thaw_all_callback
get_tree_bdevget_tree_bdev - Get a superblock based on a single block device*@fc: The filesystem context holding the parameters*@fill_super: Helper to initialise a new superblock
mount_bdev
freeze_superze_super - lock the filesystem and force it into a consistent state*@sb: the super to lock* Syncs the super to make sure the filesystem is consistent and calls the fs's* freeze_fs. Subsequent calls to this without first thawing the fs will return* -EBUSY.
thaw_super
namespace_lock
do_umount_root
do_reconfigure_mntHandle reconfiguration of the mountpoint only without alteration of the* superblock it refers to. This is triggered by specifying MS_REMOUNT|MS_BIND* to mount(2).
do_remounthange filesystem flags. dir should be a physical root of filesystem.* If you've mounted a non-root directory somewhere and want to do remount* on it - tough luck.
mount_subtree
vfs_fsconfig_lockedCheck the state and apply the configuration. Note that this function is* allowed to 'steal' the value by setting param->xxx to NULL before returning.
userfaultfd_event_wait_completion
userfaultfd_release
userfaultfd_register
userfaultfd_unregister
add_existing_master_key
add_master_key
do_remove_keyTry to remove an fscrypt master encryption key
v1_write_file_info
v2_write_file_infoWrite information header to quota file
v2_write_dquot
v2_release_dquot