Function report |
Source Code:fs\quota\dquot.c |
Create Date:2022-07-28 20:32:52 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Put reference to dquot
Proto:void dqput(struct dquot *dquot)
Type:void
Parameter:
Type | Parameter | Name |
---|---|---|
struct dquot * | dquot |
756 | If Not dquot Then Return |
766 | dqstats_inc(DQST_DROPS) |
767 | we_slept : |
768 | spin_lock( & There are five quota SMP locks:* * dq_list_lock protects all lists with quotas and quota formats) |
769 | If atomic_read( & Use count ) > 1 Then |
771 | atomic_dec( & Use count ) |
773 | If Not sb_has_quota_active( superblock this applies to , USRQUOTA (uid) or GRPQUOTA (gid) or PRJQUOTA (projid) ) && atomic_read( & Use count ) == 1 Then wake_up( & dquot_ref_wq) |
776 | spin_unlock( & There are five quota SMP locks:* * dq_list_lock protects all lists with quotas and quota formats) |
777 | Return |
780 | If dquot_dirty(dquot) Then |
781 | spin_unlock( & There are five quota SMP locks:* * dq_list_lock protects all lists with quotas and quota formats) |
783 | ret = write_dquot(dquot) |
784 | If ret < 0 Then |
785 | quota_error( superblock this applies to , "Can't write quota structure (error %d). Quota may get out of sync!", ret) |
792 | clear_dquot_dirty(dquot) |
794 | Go to we_slept |
797 | spin_unlock( & There are five quota SMP locks:* * dq_list_lock protects all lists with quotas and quota formats) |
798 | release_dquot(dquot) |
799 | Go to we_slept |
801 | atomic_dec( & Use count ) |
807 | spin_unlock( & There are five quota SMP locks:* * dq_list_lock protects all lists with quotas and quota formats) |
Name | Describe |
---|---|
dqput_all | |
invalidate_dquots | Invalidate all dquots on the list |
dquot_scan_active | Call callback for every active dquot on given filesystem |
dquot_writeback_dquots | Write all dquot structures to quota files |
dqget | Get reference to dquot* Locking is slightly tricky here. We are guarded from parallel quotaoff()* destroying our dquot by:* a) checking for quota flags under dq_list_lock and* b) getting a reference to dquot before we release dq_list_lock |
remove_inode_dquot_ref | Remove references to dquots from inode and add dquot to list for freeing* if we have the last reference to dquot |
put_dquot_list | Free list of dquots* Dquots are removed from inodes and no new references can be got so we are* the only ones holding reference |
dquot_get_dqblk | |
dquot_get_next_dqblk | |
dquot_set_dqblk |
Source code conversion tool public plug-in interface | X |
---|---|
Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |