函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:setfl

函数原型:static int setfl(int fd, struct file *filp, unsigned long arg)

返回类型:int

参数:

类型参数名称
intfd
struct file *filp
unsigned longarg
37  inode等于file_inode(filp)
38  error等于0
44  如果arg按位异或f_flags的值按位与O_APPENDIS_APPEND(inode)则返回:负EPERM
48  如果arg按位与O_NOATIME且非f_flags按位与O_NOATIME的值则如果非inode_owner_or_capable(inode)则
50  返回:负EPERM
53  如果O_NONBLOCK不等于O_NDELAY则如果arg按位与O_NDELAY
55  arg或等于O_NONBLOCK
58  如果非S_ISFIFO(i_mode)且arg按位与O_DIRECT
59  如果非f_mapping或非a_ops或非direct_IO则返回:负EINVAL
64  如果check_flagserror等于check_flags(arg)
66  如果error则返回:error
72  如果arg按位异或f_flags的值按位与FASYNCfasync
73  error等于fasync(fd, filp, (arg & FASYNC) != 0)
74  如果error小于0则转到:out
76  如果error大于0则error等于0
79  加自旋锁
80  f_flags等于arg按位与SETFL_MASK按位或f_flags按位与SETFL_MASK的反
81  自旋锁解锁
83  out :
84  返回:error
调用者
名称描述
do_fcntl