Home
last modified time | relevance | path

Searched refs:dquot (Results 1 – 25 of 25) sorted by relevance

/linux/fs/quota/
H A Ddquot.c290 static inline void insert_dquot_hash(struct dquot *dquot) in insert_dquot_hash() argument
293 head = dquot_hash + hashfn(dquot->dq_sb, dquot->dq_id); in insert_dquot_hash()
294 hlist_add_head(&dquot->dq_hash, head); in insert_dquot_hash()
297 static inline void remove_dquot_hash(struct dquot *dquot) in remove_dquot_hash() argument
299 hlist_del_init(&dquot->dq_hash); in remove_dquot_hash()
302 static struct dquot *find_dquot(unsigned int hashent, struct super_block *sb, in find_dquot()
305 struct dquot *dquot; in find_dquot() local
307 hlist_for_each_entry(dquot, dquot_hash+hashent, dq_hash) in find_dquot()
308 if (dquot->dq_sb == sb && qid_eq(dquot->dq_id, qid)) in find_dquot()
309 return dquot; in find_dquot()
[all …]
H A Dquota_tree.c260 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 *dquot, in do_insert_tree() argument
352 quota_error(dquot->dq_sb, in do_insert_tree()
364 quota_error(dquot->dq_sb, "Can't read tree quota " in do_insert_tree()
370 newblk = le32_to_cpu(ref[get_index(info, dquot->dq_id, depth)]); in do_insert_tree()
[all …]
H A Dquota_v2.c25 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, void *dp);
30 static int v2r1_is_id(void *dp, struct dquot *dquot);
229 static void v2r0_disk2memdqb(struct dquot *dquot, void *dp) in v2r0_disk2memdqb() argument
232 struct mem_dqblk *m = &dquot->dq_dqb; in v2r0_disk2memdqb()
249 static void v2r0_mem2diskdqb(void *dp, struct dquot *dquot) in v2r0_mem2diskdqb() argument
252 struct mem_dqblk *m = &dquot->dq_dqb; in v2r0_mem2diskdqb()
[all …]
H A Dquota_v1.c56 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->dq_dqb.dqb_bsoftlimit == 0 && in v1_read_dqblk()
74 dquot->dq_dqb.dqb_ihardlimit == 0 && in v1_read_dqblk()
75 dquot->dq_dqb.dqb_isoftlimit == 0) in v1_read_dqblk()
[all …]
H A DMakefile2 obj-$(CONFIG_QUOTA) += dquot.o
/linux/mm/
H A Dshmem_quota.c164 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->dq_sb->s_fs_info; in shmem_acquire_dquot()
171 qid_t id = from_kqid(&init_user_ns, dquot->dq_id); in shmem_acquire_dquot()
172 struct quota_info *dqopt = sb_dqopt(dquot->dq_sb); in shmem_acquire_dquot()
175 mutex_lock(&dquot->dq_lock); in shmem_acquire_dquot()
200 if (dquot->dq_id.type == USRQUOTA) { in shmem_acquire_dquot()
203 } else if (dquot->dq_id.type == GRPQUOTA) { in shmem_acquire_dquot()
215 spin_lock(&dquot->dq_dqb_lock); in shmem_acquire_dquot()
216 dquot->dq_dqb.dqb_bhardlimit = entry->bhardlimit; in shmem_acquire_dquot()
[all …]
H A Dshmem.c331 static struct dquot __rcu **shmem_get_dquots(struct inode *inode) in shmem_get_dquots()
/linux/include/linux/
H A Ddqblk_qtree.h18 struct dquot;
23 …void (*mem2disk_dqblk)(void *disk, struct dquot *dquot); /* Convert given entry from in memory for…
24 …void (*disk2mem_dqblk)(struct dquot *dquot, void *disk); /* Convert given entry from disk format t…
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 *dquot);
44 int qtree_delete_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
45 int qtree_release_dquot(struct qtree_mem_dqinfo *info, struct dquot *dquot);
H A Dquotaops.h46 struct dquot *dqget(struct super_block *sb, struct kqid qid);
47 static inline struct dquot *dqgrab(struct dquot *dquot) in dqgrab() argument
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 *dquot) in dquot_is_busy() argument
58 if (test_bit(DQ_MOD_B, &dquot->dq_flags)) in dquot_is_busy()
60 if (atomic_read(&dquot->dq_count) > 0) in dquot_is_busy()
65 void dqput(struct dquot *dquot);
[all …]
H A Dquota.h296 struct dquot { struct
317 int (*read_dqblk)(struct dquot *dquot); /* Read structure for one user */ argument
318 int (*commit_dqblk)(struct dquot *dquot); /* Write structure for one user */
319 …int (*release_dqblk)(struct dquot *dquot); /* Called when last reference to dquot is being dropped…
325 int (*write_dquot) (struct dquot *); /* Ordinary dquot write */
326 struct dquot *(*alloc_dquot)(struct super_block *, int); /* Allocate memory for new dquot */
327 void (*destroy_dquot)(struct dquot *); /* Free memory for dquot */
328 int (*acquire_dquot) (struct dquot *); /* Quota is going to be created on disk */
329 int (*release_dquot) (struct dquot *); /* Quota is going to be deleted from disk */
330 int (*mark_dirty) (struct dquot *); /* Dquot is marked dirty */
H A Dshmem_fs.h56 struct dquot __rcu *i_dquot[MAXQUOTAS];
/linux/fs/ocfs2/
H A Dquota.h28 struct dquot dq_dquot; /* Generic VFS dquot */
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
103 return __ocfs2_sync_dquot(dquot, 0); in ocfs2_sync_dquot()
105 static inline int ocfs2_global_release_dquot(struct dquot *dquot) in ocfs2_global_release_dquot() argument
107 return __ocfs2_sync_dquot(dquot, 1); in ocfs2_global_release_dquot()
115 int ocfs2_create_local_dquot(struct dquot *dquot);
116 int ocfs2_local_release_dquot(handle_t *handle, struct dquot *dquot);
[all …]
H A Dquota_local.c465 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->dq_dqb_lock); in ocfs2_recover_local_quota_file()
537 status = ocfs2_global_release_dquot(dquot); in ocfs2_recover_local_quota_file()
563 dqput(dquot); in ocfs2_recover_local_quota_file()
[all …]
H A Dinode.h68 struct dquot __rcu *i_dquot[MAXQUOTAS];
H A Dsuper.c123 static struct dquot __rcu **ocfs2_get_dquots(struct inode *inode) in ocfs2_get_dquots()
H A Dfile.c1124 struct dquot *transfer_to[MAXQUOTAS] = { }; in ocfs2_setattr()
/linux/fs/f2fs/
H A Dsuper.c2118 struct dquot *dquot; in f2fs_statfs_project() local
2123 dquot = dqget(sb, qid); in f2fs_statfs_project()
2124 if (IS_ERR(dquot)) in f2fs_statfs_project()
2125 return PTR_ERR(dquot); in f2fs_statfs_project()
2126 spin_lock(&dquot->dq_dqb_lock); in f2fs_statfs_project()
2128 limit = min_not_zero(dquot->dq_dqb.dqb_bsoftlimit, in f2fs_statfs_project()
2129 dquot->dq_dqb.dqb_bhardlimit); in f2fs_statfs_project()
2135 curblock = (dquot->dq_dqb.dqb_curspace + in f2fs_statfs_project()
2136 dquot->dq_dqb.dqb_rsvspace) >> sb->s_blocksize_bits; in f2fs_statfs_project()
2145 limit = min_not_zero(dquot->dq_dqb.dqb_isoftlimit, in f2fs_statfs_project()
[all …]
H A Df2fs.h931 struct dquot __rcu *i_dquot[MAXQUOTAS];
H A Dfile.c3345 struct dquot *transfer_to[MAXQUOTAS] = {}; in f2fs_transfer_project_quota()
/linux/fs/jfs/
H A Djfs_incore.h95 struct dquot __rcu *i_dquot[MAXQUOTAS];
H A Dsuper.c792 static struct dquot __rcu **jfs_get_dquots(struct inode *inode) in jfs_get_dquots()
/linux/include/linux/fs/
H A Dsuper_types.h111 struct dquot __rcu **(*get_dquots)(struct inode *inode);
/linux/fs/ext2/
H A Dext2.h678 struct dquot __rcu *i_dquot[MAXQUOTAS];
H A Dsuper.c349 static struct dquot __rcu **ext2_get_dquots(struct inode *inode) in ext2_get_dquots()
/linux/Documentation/filesystems/
H A Dvfs.rst257 struct dquot **(*get_dquots)(struct inode *);
386 called by quota to get 'struct dquot' array for a particular inode.