Defined in 1 files as a function:

Referenced in 13 files:

Smatch caller information:

fs/coredump.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/xfs/xfs_exchrange.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/orangefs/inode.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/volumes.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/btrfs/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ocfs2/mmap.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/f2fs/gc.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/splice.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/bluetooth/hci_ldisc.c hci_uart_dequeue() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/bluetooth/hci_ldisc.c hci_uart_flush() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &hdev->req_lock

drivers/bluetooth/hci_ldisc.c hci_uart_send_frame() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &hdev->req_lock

drivers/bluetooth/hci_ldisc.c hci_uart_send_frame() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &hdev->req_lock

drivers/bluetooth/hci_ldisc.c hci_uart_tty_receive() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &tty->ldisc_sem
HALF_LOCKED2 &tty->ldisc_sem
HALF_LOCKED2 &tty->port->buf.lock

drivers/bluetooth/hci_ldisc.c hci_uart_tty_receive() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &tty->ldisc_sem
HALF_LOCKED2 &tty->ldisc_sem
HALF_LOCKED2 &tty->port->buf.lock

drivers/bluetooth/hci_ldisc.c hci_uart_tx_wakeup() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &hdev->req_lock
HALF_LOCKED2 &idev->hu_lock

fs/inode.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

fs/f2fs/inode.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/aio.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &epdata->dev->lock
HALF_LOCKED2 &pool->lock

fs/f2fs/segment.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
TASK_NOT_RUNNING
NOCHECK_CALL

fs/remap_range.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

mm/memory_hotplug.c put_online_mems() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 6202115441398431744
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &mf_mutex
HALF_LOCKED2 global &scan_mutex

fs/ext4/inode.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ext4/inode.c ext4_writepages_up_read() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/read_write.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/cachefiles/io.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &epdata->dev->lock
HALF_LOCKED2 &pool->lock

fs/pipe.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ext4/mmp.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/fuse/dax.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/nfs/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/block/loop.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ext2/inode.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/overlayfs/util.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dentry->d_lockref.lock

mm/filemap.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/locking/locktorture.c torture_percpu_rwsem_up_read() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 8876333978586963968
NOCHECK_CALL
HALF_LOCKED2 flags
HALF_LOCKED2 global &torture_rwlock
HALF_LOCKED2 global &torture_rwsem

fs/netfs/buffered_write.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/xfs/xfs_trans.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mp->m_growlock

fs/namespace.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/cgroup/cgroup.c cgroup_threadgroup_change_end() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 2172410039871291392
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &cgroup_mutex

kernel/cpu.c cpus_read_unlock() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 8100665728720609280
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &kvm->lock
HALF_LOCKED2 &kvm->slots_lock
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &policy->rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &cgroup_mutex
HALF_LOCKED2 global &cpuset_top_mutex
HALF_LOCKED2 global &freeze_on_smi_mutex
HALF_LOCKED2 global &hwlat_data.lock
HALF_LOCKED2 global &ifs_sem
HALF_LOCKED2 global &isolated_cpus_lock
HALF_LOCKED2 global &mce_inject_mutex
HALF_LOCKED2 global &mmiotrace_mutex
HALF_LOCKED2 global &mux_interval_mutex
HALF_LOCKED2 global &once_mutex
HALF_LOCKED2 global &pernet_ops_rwsem
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &sched_core_mutex
HALF_LOCKED2 global &sev_cmd_mutex
HALF_LOCKED2 global &trace_types_lock
HALF_LOCKED2 global &watchdog_mutex
HALF_LOCKED2 irq

fs/udf/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/block-group.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/btrfs/defrag.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

kernel/acct.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/ocfs2/journal.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &(inode->i_sb)->s_fs_info->nfs_sync_rwlock
HALF_LOCKED2 &alloc_inode->i_rwsem
HALF_LOCKED2 &data_alloc_inode->i_rwsem
HALF_LOCKED2 &dquot->dq_lock
HALF_LOCKED2 &dx_alloc_inode->i_rwsem
HALF_LOCKED2 &gb_inode->i_rwsem
HALF_LOCKED2 &info->dqi_gqinode->i_rwsem
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &inode_alloc_inode->i_rwsem
HALF_LOCKED2 &local_alloc_inode->i_rwsem
HALF_LOCKED2 &main_bm_inode->i_rwsem
HALF_LOCKED2 &new_inode->i_rwsem
HALF_LOCKED2 &oi->ip_alloc_sem
HALF_LOCKED2 &oinfo->dqi_gqinode->i_rwsem
HALF_LOCKED2 &orphan_dir_inode->i_rwsem
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sb->s_umount
HALF_LOCKED2 &t_inode->i_rwsem
HALF_LOCKED2 &tl_inode->i_rwsem
HALF_LOCKED2 &xb_alloc_inode->i_rwsem

fs/nilfs2/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sb->s_fs_info->ns_segctor_sem

kernel/events/core.c class_percpu_read_destructor() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 8451098856262672384
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

kernel/events/hw_breakpoint.c bp_constraints_unlock() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 6313341910690820096
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 _T->lock

fs/btrfs/transaction.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/exfat/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &inode->i_rwsem
TYPE_LOCK (struct inode)->i_rwsem

fs/ntfs/inode.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/locks.c __break_lease() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/locks.c __break_lease() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/locks.c __fcntl_getlease() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
NOCHECK_CALL

fs/locks.c flock_lock_inode() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/locks.c generic_add_lease() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem

fs/locks.c generic_delete_lease() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/locks.c locks_remove_lease() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/locks.c posix_lock_inode() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/locks.c posix_lock_inode() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4890804925068169216
PARAM_VALUE 0 sem->read_count 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

kernel/signal.c cgroup_threadgroup_change_end() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 2172410039871291392
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &tsk->sighand->siglock
HALF_LOCKED2 global &system_transition_mutex
HALF_LOCKED2 irq

fs/btrfs/ioctl.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPABLE 0 21
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ceph/addr.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/f2fs/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ext4/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/ntfs/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/xfs/xfs_file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/btrfs/super.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &sb->s_umount

fs/gfs2/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/quota/quota.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

kernel/events/uprobes.c uprobe_end_dup_mmap() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 2092044131123298304
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/zonefs/file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/xfs/xfs_ioctl.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
CAPABLE 0 21
NOCHECK_CALL

fs/gfs2/trans.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/f2fs/super.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL

fs/open.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/proc/kcore.c read_kcore_iter() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 2605643244934909952
PARAM_VALUE 0 sem->read_count 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

io_uring/rw.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/backing-file.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

fs/exec.c cgroup_threadgroup_change_end() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 2172410039871291392
NOCHECK_CALL

fs/nfs/localio.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

fs/nilfs2/segment.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 &sb->s_fs_info->ns_segctor_sem

fs/ext4/super.c __sb_end_write() -> percpu_up_read()

Type Parameter Key Value
PARAM_VALUE 0 sem 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &sb->s_umount