/linux/fs/quota/ |
H A D | dquot.c | 38 * Write updated not to require dquot lock 89 * * dquot->dq_dqb_lock protects data from dq_dqb 91 * consistency of dquot->dq_dqb with inode->i_blocks, i_bytes so that 93 * * dq_data_lock protects mem_dqinfo structures and modifications of dquot 99 * dq_data_lock > dq_list_lock > i_lock > dquot->dq_dqb_lock, 103 * the life of the dquot structure and so needn't to be protected by a lock 108 * inode and before dropping dquot references to avoid use of dquots after 118 * Each dquot has its dq_lock mutex. Dquot is locked when it is being read to 125 * s_umount > i_mutex > journal_lock > dquot->dq_lock > dqio_sem 162 /* SLAB cache for dquot structure 287 insert_dquot_hash(struct dquot * dquot) insert_dquot_hash() argument 294 remove_dquot_hash(struct dquot * dquot) remove_dquot_hash() argument 302 struct dquot *dquot; find_dquot() local 312 put_dquot_last(struct dquot * dquot) put_dquot_last() argument 318 put_releasing_dquots(struct dquot * dquot) put_releasing_dquots() argument 324 remove_free_dquot(struct dquot * dquot) remove_free_dquot() argument 335 put_inuse(struct dquot * dquot) put_inuse() argument 343 remove_inuse(struct dquot * dquot) remove_inuse() argument 352 wait_on_dquot(struct dquot * dquot) wait_on_dquot() argument 358 dquot_active(struct dquot * dquot) dquot_active() argument 363 dquot_dirty(struct dquot * dquot) dquot_dirty() argument 368 mark_dquot_dirty(struct dquot * dquot) mark_dquot_dirty() argument 374 dquot_mark_dquot_dirty(struct dquot * dquot) dquot_mark_dquot_dirty() argument 403 struct dquot *dquot; mark_all_dquot_dirty() local 417 dqput_all(struct dquot ** dquot) dqput_all() argument 425 clear_dquot_dirty(struct dquot * dquot) clear_dquot_dirty() argument 452 dquot_acquire(struct dquot * dquot) dquot_acquire() argument 499 dquot_commit(struct dquot * dquot) dquot_commit() argument 525 dquot_release(struct dquot * dquot) dquot_release() argument 554 dquot_destroy(struct dquot * dquot) dquot_destroy() argument 560 do_destroy_dquot(struct dquot * dquot) do_destroy_dquot() argument 573 struct dquot *dquot, *tmp; invalidate_dquots() local 627 dquot_scan_active(struct super_block * sb,int (* fn)(struct dquot * dquot,unsigned long priv),unsigned long priv) dquot_scan_active() argument 630 struct dquot *dquot, *old_dquot = NULL; dquot_scan_active() local 668 dquot_write_dquot(struct dquot * dquot) dquot_write_dquot() argument 684 struct dquot *dquot; dquot_writeback_dquots() local 784 struct dquot *dquot; dqcache_shrink_scan() local 813 struct dquot *dquot; quota_release_workfn() local 853 dqput(struct dquot * dquot) dqput() argument 896 struct dquot *dquot; get_empty_dquot() local 926 struct dquot *dquot, *empty = NULL; dqget() local 1097 struct dquot *dquot = srcu_dereference_check( remove_dquot_ref() local 1129 dquot_free_reserved_space(struct dquot * dquot,qsize_t number) dquot_free_reserved_space() argument 1143 dquot_decr_inodes(struct dquot * dquot,qsize_t number) dquot_decr_inodes() argument 1155 dquot_decr_space(struct dquot * dquot,qsize_t number) dquot_decr_space() argument 1174 warning_issued(struct dquot * dquot,const int warntype) warning_issued() argument 1252 prepare_warning(struct dquot_warn * warn,struct dquot * dquot,int warntype) prepare_warning() argument 1282 ignore_hardlimit(struct dquot * dquot) ignore_hardlimit() argument 1291 dquot_add_inodes(struct dquot * dquot,qsize_t inodes,struct dquot_warn * warn) dquot_add_inodes() argument 1336 dquot_add_space(struct dquot * dquot,qsize_t space,qsize_t rsv_space,unsigned int flags,struct dquot_warn * warn) dquot_add_space() argument 1404 info_idq_free(struct dquot * dquot,qsize_t inodes) info_idq_free() argument 1422 info_bdq_free(struct dquot * dquot,qsize_t space) info_bdq_free() argument 1474 struct dquot *dquot; __dquot_initialize() local 1542 struct dquot *dquot = srcu_dereference_check( __dquot_initialize() local 1687 struct dquot *dquot; __dquot_alloc_space() local 1757 struct dquot *dquot; dquot_alloc_inode() local 1802 struct dquot *dquot; dquot_claim_space_nodirty() local 1843 struct dquot *dquot; dquot_reclaim_space_nodirty() local 1886 struct dquot *dquot; __dquot_free_space() local 1943 struct dquot *dquot; dquot_free_inode() local 2129 struct dquot *dquot; dquot_transfer() local 2662 do_get_dqblk(struct dquot * dquot,struct qc_dqblk * di) do_get_dqblk() argument 2682 struct dquot *dquot; dquot_get_dqblk() local 2697 struct dquot *dquot; dquot_get_next_dqblk() local 2721 do_set_dqblk(struct dquot * dquot,struct qc_dqblk * di) do_set_dqblk() argument 2817 struct dquot *dquot; dquot_set_dqblk() local [all...] |
H A D | quota_tree.c | 258 /* Find space for dquot */ 260 struct dquot *dquot, int *err) in find_free_dqentry() argument 292 mark_info_dirty(dquot->dq_sb, dquot->dq_id.type); in find_free_dqentry() 298 quota_error(dquot->dq_sb, "Can't remove block (%u) " in find_free_dqentry() 313 quota_error(dquot->dq_sb, "Data block full but it shouldn't"); in find_free_dqentry() 320 quota_error(dquot->dq_sb, "Can't write quota data block %u", in find_free_dqentry() 324 dquot->dq_off = ((loff_t)blk << info->dqi_blocksize_bits) + in find_free_dqentry() 335 static int do_insert_tree(struct qtree_mem_dqinfo *info, struct dquot *dquo argument 418 dq_insert_tree(struct qtree_mem_dqinfo * info,struct dquot * dquot) dq_insert_tree() argument 439 qtree_write_dquot(struct qtree_mem_dqinfo * info,struct dquot * dquot) qtree_write_dquot() argument 479 free_dqentry(struct qtree_mem_dqinfo * info,struct dquot * dquot,uint blk) free_dqentry() argument 544 remove_tree(struct qtree_mem_dqinfo * info,struct dquot * dquot,uint * blks,int depth) remove_tree() argument 607 qtree_delete_dquot(struct qtree_mem_dqinfo * info,struct dquot * dquot) qtree_delete_dquot() argument 623 find_block_dqentry(struct qtree_mem_dqinfo * info,struct dquot * dquot,uint blk) find_block_dqentry() argument 661 find_tree_dqentry(struct qtree_mem_dqinfo * info,struct dquot * dquot,uint * blks,int depth) find_tree_dqentry() argument 708 find_dqentry(struct qtree_mem_dqinfo * info,struct dquot * dquot) find_dqentry() argument 719 qtree_read_dquot(struct qtree_mem_dqinfo * info,struct dquot * dquot) qtree_read_dquot() argument 783 qtree_release_dquot(struct qtree_mem_dqinfo * info,struct dquot * dquot) qtree_release_dquot() argument [all...] |
H A D | quota_v2.c | 25 static void v2r0_mem2diskdqb(void *dp, struct dquot *dquot); 26 static void v2r0_disk2memdqb(struct dquot *dquot, void *dp); 27 static int v2r0_is_id(void *dp, struct dquot *dquot); 28 static void v2r1_mem2diskdqb(void *dp, struct dquot *dquot); 29 static void v2r1_disk2memdqb(struct dquot *dquot, voi 229 v2r0_disk2memdqb(struct dquot * dquot,void * dp) v2r0_disk2memdqb() argument 249 v2r0_mem2diskdqb(void * dp,struct dquot * dquot) v2r0_mem2diskdqb() argument 269 v2r0_is_id(void * dp,struct dquot * dquot) v2r0_is_id() argument 282 v2r1_disk2memdqb(struct dquot * dquot,void * dp) v2r1_disk2memdqb() argument 302 v2r1_mem2diskdqb(void * dp,struct dquot * dquot) v2r1_mem2diskdqb() argument 323 v2r1_is_id(void * dp,struct dquot * dquot) v2r1_is_id() argument 336 v2_read_dquot(struct dquot * dquot) v2_read_dquot() argument 352 v2_write_dquot(struct dquot * dquot) v2_write_dquot() argument 383 v2_release_dquot(struct dquot * dquot) v2_release_dquot() argument [all...] |
H A D | quota_v1.c | 56 static int v1_read_dqblk(struct dquot *dquot) in v1_read_dqblk() argument 58 int type = dquot->dq_id.type; in v1_read_dqblk() 60 struct quota_info *dqopt = sb_dqopt(dquot->dq_sb); in v1_read_dqblk() 67 dquot->dq_sb->s_op->quota_read(dquot->dq_sb, type, (char *)&dqblk, in v1_read_dqblk() 69 v1_dqoff(from_kqid(&init_user_ns, dquot->dq_id))); in v1_read_dqblk() 71 v1_disk2mem_dqblk(&dquot->dq_dqb, &dqblk); in v1_read_dqblk() 72 if (dquot->dq_dqb.dqb_bhardlimit == 0 && in v1_read_dqblk() 73 dquot in v1_read_dqblk() 82 v1_commit_dqblk(struct dquot * dquot) v1_commit_dqblk() argument [all...] |
H A D | Makefile | 2 obj-$(CONFIG_QUOTA) += dquot.o
|
/linux/fs/ocfs2/ |
H A D | quota_global.c | 38 * by dqio_sem or dquot->dq_lock. 52 * Acquire dquot for the first time: 58 * Release last reference to dquot: 71 static void ocfs2_global_disk2memdqb(struct dquot *dquot, void *dp) in ocfs2_global_disk2memdqb() argument 74 struct mem_dqblk *m = &dquot->dq_dqb; in ocfs2_global_disk2memdqb() 77 if (!test_bit(DQ_LASTSET_B + QIF_ILIMITS_B, &dquot->dq_flags)) { in ocfs2_global_disk2memdqb() 81 if (!test_bit(DQ_LASTSET_B + QIF_INODES_B, &dquot->dq_flags)) in ocfs2_global_disk2memdqb() 83 if (!test_bit(DQ_LASTSET_B + QIF_BLIMITS_B, &dquot->dq_flags)) { in ocfs2_global_disk2memdqb() 87 if (!test_bit(DQ_LASTSET_B + QIF_SPACE_B, &dquot in ocfs2_global_disk2memdqb() 96 ocfs2_global_mem2diskdqb(void * dp,struct dquot * dquot) ocfs2_global_mem2diskdqb() argument 114 ocfs2_global_is_id(void * dp,struct dquot * dquot) ocfs2_global_is_id() argument 490 __ocfs2_sync_dquot(struct dquot * dquot,int freeing) __ocfs2_sync_dquot() argument 603 ocfs2_sync_dquot_helper(struct dquot * dquot,unsigned long type) ocfs2_sync_dquot_helper() argument 669 ocfs2_write_dquot(struct dquot * dquot) ocfs2_write_dquot() argument 730 ocfs2_release_dquot(struct dquot * dquot) ocfs2_release_dquot() argument 809 ocfs2_acquire_dquot(struct dquot * dquot) ocfs2_acquire_dquot() argument 925 ocfs2_mark_dquot_dirty(struct dquot * dquot) ocfs2_mark_dquot_dirty() argument 1015 struct ocfs2_dquot *dquot = ocfs2_alloc_dquot() local 1023 ocfs2_destroy_dquot(struct dquot * dquot) ocfs2_destroy_dquot() argument [all...] |
H A D | quota.h | 28 struct dquot dq_dquot; /* Generic VFS dquot */ 31 struct ocfs2_quota_chunk *dq_chunk; /* Chunk dquot is in */ 72 static inline struct ocfs2_dquot *OCFS2_DQUOT(struct dquot *dquot) in OCFS2_DQUOT() argument 74 return container_of(dquot, struct ocfs2_dquot, dq_dquot); in OCFS2_DQUOT() 100 int __ocfs2_sync_dquot(struct dquot *dquot, int freeing); 101 static inline int ocfs2_sync_dquot(struct dquot *dquot) in ocfs2_sync_dquot() argument 105 ocfs2_global_release_dquot(struct dquot * dquot) ocfs2_global_release_dquot() argument [all...] |
H A D | quota_local.c | 70 /* Offset of the dquot structure in the quota file */ 465 struct dquot *dquot; in ocfs2_recover_local_quota_file() local 498 dquot = dqget(sb, in ocfs2_recover_local_quota_file() 501 if (IS_ERR(dquot)) { in ocfs2_recover_local_quota_file() 502 status = PTR_ERR(dquot); in ocfs2_recover_local_quota_file() 525 spin_lock(&dquot->dq_dqb_lock); in ocfs2_recover_local_quota_file() 531 dquot->dq_dqb.dqb_curspace += spacechange; in ocfs2_recover_local_quota_file() 532 dquot->dq_dqb.dqb_curinodes += inodechange; in ocfs2_recover_local_quota_file() 533 spin_unlock(&dquot in ocfs2_recover_local_quota_file() 893 ocfs2_local_write_dquot(struct dquot * dquot) ocfs2_local_write_dquot() argument 1216 ocfs2_create_local_dquot(struct dquot * dquot) ocfs2_create_local_dquot() argument 1274 ocfs2_local_release_dquot(handle_t * handle,struct dquot * dquot) ocfs2_local_release_dquot() argument [all...] |
H A D | inode.h | 68 struct dquot __rcu *i_dquot[MAXQUOTAS];
|
H A D | super.c | 123 static struct dquot __rcu **ocfs2_get_dquots(struct inode *inode) in ocfs2_get_dquots() 964 /* Turn off quotas. This will remove all dquot structures from in ocfs2_disable_quotas()
|
/linux/mm/ |
H A D | shmem_quota.c | 3 * In memory quota format relies on quota infrastructure to store dquot 5 * with persistent storage can load quota information into dquot from the 6 * storage on-demand and hence quota dquot shrinker can free any dquot 161 * Load dquot with limits from existing entry, or create the new entry if 164 static int shmem_acquire_dquot(struct dquot *dquot) in shmem_acquire_dquot() argument 166 struct mem_dqinfo *info = sb_dqinfo(dquot->dq_sb, dquot->dq_id.type); in shmem_acquire_dquot() 168 struct shmem_sb_info *sbinfo = dquot in shmem_acquire_dquot() 237 shmem_is_empty_dquot(struct dquot * dquot) shmem_is_empty_dquot() argument 265 shmem_release_dquot(struct dquot * dquot) shmem_release_dquot() argument 320 shmem_mark_dquot_dirty(struct dquot * dquot) shmem_mark_dquot_dirty() argument [all...] |
/linux/include/linux/ |
H A D | dqblk_qtree.h | 18 struct dquot; 23 void (*mem2disk_dqblk)(void *disk, struct dquot *dquot); /* Convert given entry from in memory format to disk one */ 24 void (*disk2mem_dqblk)(struct dquot *dquot, void *disk); /* Convert given entry from disk format to in memory one */ 25 int (*is_id)(void *disk, struct dquot *dquot); /* Is this structure for given id? */ 42 int qtree_write_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot); 43 int qtree_read_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquo [all...] |
H A D | quotaops.h | 46 struct dquot *dqget(struct super_block *sb, struct kqid qid); 47 static inline struct dquot *dqgrab(struct dquot *dquot) in dqgrab() argument 49 /* Make sure someone else has active reference to dquot */ in dqgrab() 50 WARN_ON_ONCE(!atomic_read(&dquot->dq_count)); in dqgrab() 51 WARN_ON_ONCE(!test_bit(DQ_ACTIVE_B, &dquot->dq_flags)); in dqgrab() 52 atomic_inc(&dquot->dq_count); in dqgrab() 53 return dquot; in dqgrab() 56 static inline bool dquot_is_busy(struct dquot *dquo argument [all...] |
H A D | quota.h | 282 #define DQ_MOD_B 0 /* dquot modified since read */ 286 #define DQ_READ_B 4 /* dquot was read into memory */ 287 #define DQ_ACTIVE_B 5 /* dquot is active (dquot_release not called) */ 288 #define DQ_RELEASING_B 6 /* dquot is in releasing_dquots list waiting 293 * and the quota format handling dquot can\ 296 struct dquot { struct 301 struct mutex dq_lock; /* dquot IO lock */ argument 306 loff_t dq_off; /* Offset of dquot on disk [dq_lock, stable once set] */ argument 317 int (*read_dqblk)(struct dquot *dquot); /* Rea argument 300 dq_dirtydquot global() argument [all...] |
H A D | shmem_fs.h | 42 struct dquot __rcu *i_dquot[MAXQUOTAS];
|
/linux/fs/ext4/ |
H A D | super.c | 1564 static int ext4_write_dquot(struct dquot *dquot); 1565 static int ext4_acquire_dquot(struct dquot *dquot); 1566 static int ext4_release_dquot(struct dquot *dquot); 1567 static int ext4_mark_dquot_dirty(struct dquot *dquot); 1578 static struct dquot __rcu **ext4_get_dquots(struct inode *inode) in ext4_get_dquots() 6809 struct dquot *dquot; in ext4_statfs_project() local 6814 dquot = dqget(sb, qid); in ext4_statfs_project() 6815 if (IS_ERR(dquot)) in ext4_statfs_project() 6816 return PTR_ERR(dquot); in ext4_statfs_project() 6817 spin_lock(&dquot->dq_dqb_lock); in ext4_statfs_project() [all …]
|
H A D | ioctl.c | 721 struct dquot *transfer_to[MAXQUOTAS] = { }; in ext4_ioctl_setproject()
|
/linux/fs/f2fs/ |
H A D | super.c | 64 [FAULT_DQUOT_INIT] = "dquot initialize", 2060 struct dquot *dquot; in f2fs_statfs_project() local 2065 dquot = dqget(sb, qid); in f2fs_statfs_project() 2066 if (IS_ERR(dquot)) in f2fs_statfs_project() 2067 return PTR_ERR(dquot); in f2fs_statfs_project() 2068 spin_lock(&dquot->dq_dqb_lock); in f2fs_statfs_project() 2070 limit = min_not_zero(dquot->dq_dqb.dqb_bsoftlimit, in f2fs_statfs_project() 2071 dquot->dq_dqb.dqb_bhardlimit); in f2fs_statfs_project() 2077 curblock = (dquot in f2fs_statfs_project() 3389 f2fs_dquot_commit(struct dquot * dquot) f2fs_dquot_commit() argument 3402 f2fs_dquot_acquire(struct dquot * dquot) f2fs_dquot_acquire() argument 3415 f2fs_dquot_release(struct dquot * dquot) f2fs_dquot_release() argument 3425 f2fs_dquot_mark_dquot_dirty(struct dquot * dquot) f2fs_dquot_mark_dquot_dirty() argument [all...] |
/linux/fs/jfs/ |
H A D | jfs_incore.h | 95 struct dquot __rcu *i_dquot[MAXQUOTAS];
|
H A D | super.c | 792 static struct dquot __rcu **jfs_get_dquots(struct inode *inode) in jfs_get_dquots()
|
/linux/Documentation/filesystems/ |
H A D | locking.rst | 565 int (*write_dquot) (struct dquot *); 566 int (*acquire_dquot) (struct dquot *); 567 int (*release_dquot) (struct dquot *); 568 int (*mark_dirty) (struct dquot *); 589 More details about quota locking can be found in fs/dquot.c.
|
/linux/fs/bcachefs/ |
H A D | quota.c | 145 struct mem_dqinfo *info = &sb_dqopt(dquot->dq_sb)->info[dquot->dq_id.type]; in ignore_hardlimit()
|
/linux/fs/ext2/ |
H A D | ext2.h | 678 struct dquot __rcu *i_dquot[MAXQUOTAS];
|
H A D | super.c | 349 static struct dquot __rcu **ext2_get_dquots(struct inode *inode) in ext2_get_dquots()
|
/linux/Documentation/filesystems/xfs/ |
H A D | xfs-online-fsck-design.rst | 552 and commit those changes to a dquot side file when the transaction commits. 3339 8. Incore dquot references, if a file is being repaired. 3617 Add each file's resource usage to the incore dquot. 3619 3. Walk each incore dquot. 3620 If the incore dquot is not being flushed, add the ondisk buffer backing the 3621 incore dquot to a delayed write (delwri) list. 3628 Therefore, online quotacheck records file resource usage to a shadow dquot 3636 2. For each dquot attached to the file: 3638 a. The dquot is locked. 3640 b. A quota reservation is added to the dquot' [all...] |