函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Generic routine for setting common part of quota structure

函数原型:static int do_set_dqblk(struct dquot *dquot, struct qc_dqblk *di)

返回类型:int

参数:

类型参数名称
struct dquot *dquot
struct qc_dqblk *di
2653  dm等于 Diskquota usage [dq_dqb_lock]
2654  check_blim等于0, check_ilim等于0
2655  dqi等于 Information for each quota type [ USRQUOTA (uid) or GRPQUOTA (gid) or PRJQUOTA (projid) ]
2657  如果mask of fields to change in ->set_dqblk() 按位与VFS_QC_MASK的反则返回:负EINVAL
2660  如果mask of fields to change in ->set_dqblk() 按位与QC_SPC_SOFTpreferred limit on used space 大于 Maximum space limit [static] mask of fields to change in ->set_dqblk() 按位与QC_SPC_HARDabsolute limit on used space 大于 Maximum space limit [static] mask of fields to change in ->set_dqblk() 按位与Field specifiers for ->set_dqblk() in struct qc_dqblk and also for* ->set_info() in struct qc_infopreferred inode limit 大于 Maximum inode limit [static] mask of fields to change in ->set_dqblk() 按位与QC_INO_HARDmaximum # allocated inodes 大于 Maximum inode limit [static] 则返回:负ERANGE
2670  加自旋锁
2671  如果mask of fields to change in ->set_dqblk() 按位与QC_SPACE
2672  current used space 等于Space owned by the user current reserved space for delalloc
2673  check_blim等于1
2674  设置内存位
2677  如果mask of fields to change in ->set_dqblk() 按位与QC_SPC_SOFTpreferred limit on disk blks 等于preferred limit on used space
2679  如果mask of fields to change in ->set_dqblk() 按位与QC_SPC_HARDabsolute limit on disk blks alloc 等于absolute limit on used space
2681  如果mask of fields to change in ->set_dqblk() 按位与QC_SPC_SOFT按位或QC_SPC_HARD的值则
2682  check_blim等于1
2683  设置内存位
2686  如果mask of fields to change in ->set_dqblk() 按位与QC_INO_COUNT
2687  current # allocated inodes 等于# inodes owned by the user
2688  check_ilim等于1
2689  设置内存位
2692  如果mask of fields to change in ->set_dqblk() 按位与Field specifiers for ->set_dqblk() in struct qc_dqblk and also for* ->set_info() in struct qc_infopreferred inode limit 等于preferred inode limit
2694  如果mask of fields to change in ->set_dqblk() 按位与QC_INO_HARDabsolute limit on allocated inodes 等于maximum # allocated inodes
2696  如果mask of fields to change in ->set_dqblk() 按位与Field specifiers for ->set_dqblk() in struct qc_dqblk and also for* ->set_info() in struct qc_info按位或QC_INO_HARD的值则
2697  check_ilim等于1
2698  设置内存位
2701  如果mask of fields to change in ->set_dqblk() 按位与QC_SPC_TIMER
2702  ime limit for excessive disk use 等于similar to above; for space
2703  check_blim等于1
2704  设置内存位
2707  如果mask of fields to change in ->set_dqblk() 按位与QC_INO_TIMER
2708  ime limit for excessive inode use 等于zero if within inode limits
2709  check_ilim等于1
2710  设置内存位
2713  如果check_blim
2718  否则如果非mask of fields to change in ->set_dqblk() 按位与QC_SPC_TIMER的值则ime limit for excessive disk use 等于ktime_get_real_seconds - Get the seconds portion of CLOCK_REALTIME* Returns the wall clock seconds since 1970. This replaces the* get_seconds() interface which is not y2038 safe on 32bit systems. Space grace time [dq_data_lock]
2722  如果check_ilim
2727  否则如果非mask of fields to change in ->set_dqblk() 按位与QC_INO_TIMER的值则ime limit for excessive inode use 等于ktime_get_real_seconds - Get the seconds portion of CLOCK_REALTIME* Returns the wall clock seconds since 1970. This replaces the* get_seconds() interface which is not y2038 safe on 32bit systems. Inode grace time [dq_data_lock]
2731  如果absolute limit on disk blks alloc preferred limit on disk blks absolute limit on allocated inodes preferred inode limit lear_bit - Clears a bit in memory*@nr: Bit to clear*@addr: Address to start counting from* This is a relaxed atomic operation (no implied memory barriers).
2734  否则设置内存位
2736  自旋锁解锁
2737  mark_dquot_dirty(dquot)
2739  返回:0
调用者
名称描述
dquot_set_dqblk