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 |