函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:__locks_wake_up_blocks

函数原型:static void __locks_wake_up_blocks(struct file_lock *blocker)

返回类型:void

参数:

类型参数名称
struct file_lock *blocker
733  当非链表为空循环
736  waiter等于list_first_entry - get the first element from a list*@ptr: the list head to take the element from.*@type: the type of the struct this is embedded in.*@member: the name of the list_head within the struct.* Note, that list is expected to be not empty.( & list of requests with * ->fl_blocker pointing here, structfile_lock, fl_blocked_member)
738  Remove waiter from blocker's block list.* When blocker ends up pointing to itself then the list is empty.* Must be called with blocked_lock_lock held.
739  如果 Callbacks for lockmanagers lm_notifylm_notify(waiter)
741  否则wake_up( & fl_wait)
调用者
名称描述
locks_delete_blocklocks_delete_lock - stop waiting for a file lock*@waiter: the lock which was waiting* lockd/nfsd need to disconnect the lock while working on it.
__locks_insert_blockInsert waiter into blocker's block list.* We use a circular list so that processes can be easily woken up in* the order they blocked. The documentation doesn't require this but* it seems like the reasonable thing to do.
locks_wake_up_blocksWake up processes blocked waiting for blocker.* Must be called with the inode->flc_lock held!
posix_lock_inode