18#ifndef GUARD_QUOTAIO_H
19#define GUARD_QUOTAIO_H
45#error "cannot have more than 32 quota types to fit in qtype_bits"
60#define QUOTA_USR_BIT (1 << USRQUOTA)
61#define QUOTA_GRP_BIT (1 << GRPQUOTA)
62#define QUOTA_PRJ_BIT (1 << PRJQUOTA)
63#define QUOTA_ALL_BIT (QUOTA_USR_BIT | QUOTA_GRP_BIT | QUOTA_PRJ_BIT)
84#define QUOTABLOCK_BITS 10
85#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
86#define toqb(x) (((x) + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS)
99#define MAX_IQ_TIME 604800
100#define MAX_DQ_TIME 604800
102#define IOFL_INFODIRTY 0x01
129 void *buf,
unsigned int size);
131 void *buf,
unsigned int size);
160#define DQF_SEEN 0x0001
189# define __bitwise __attribute__((bitwise))
191#define __force __attribute__((force))
210 int update_filesize);
227 enum quota_type qtype,
int *usage_inconsistent,
228 int preserve_limits);
237 memcpy(ptr, &pp,
sizeof (pp));
249 memcpy(ptr, &pp,
sizeof(pp));
257 memcpy(&p, ptr,
sizeof(p));
260 memcpy(ptr, &p,
sizeof(p));
#define data
Definition: dict.c:56
unsigned int u32
Definition: ext4_utils.h:68
unsigned long long u64
Definition: ext4_utils.h:63
__le32 ino
Definition: f2fs_fs.h:1
uint32_t size
Definition: io.h:2
uint32_t id
Definition: file_sync_protocol.h:0
void * memcpy(void *dest, const void *src, size_t n)
Definition: mem_overrides.cpp:8
uint8_t type
Definition: pairing_connection.h:0
errcode_t quota_file_open(struct f2fs_sb_info *sbi, struct quota_handle *h, enum quota_type qtype, int flags)
Definition: quotaio.c:106
void quota_add_inode_usage(quota_ctx_t qctx, f2fs_ino_t ino, struct f2fs_inode *inode)
Definition: mkquota.c:291
int errcode_t
Definition: quotaio.h:35
errcode_t quota_init_context(struct f2fs_sb_info *sbi)
Definition: mkquota.c:146
static errcode_t quota_get_mem(unsigned long size, void *ptr)
Definition: quotaio.h:230
const char * quota_type2name(enum quota_type qtype)
Definition: quotaio.c:48
static errcode_t quota_free_mem(void *ptr)
Definition: quotaio.h:253
errcode_t quota_compare_and_update(struct f2fs_sb_info *sbi, enum quota_type qtype, int *usage_inconsistent, int preserve_limits)
Definition: mkquota.c:362
u64 qf_maxsize[]
Definition: quotaio.c:43
void update_grace_times(struct dquot *q)
Definition: quotaio.c:58
struct dquot * get_empty_dquot(void)
Definition: quotaio.c:221
int cur_qtype
Definition: quotaio.c:37
errcode_t quota_file_create(struct f2fs_sb_info *sbi, struct quota_handle *h, enum quota_type qtype)
Definition: quotaio.c:166
enum qf_szchk_type_t qf_szchk_type[]
Definition: quotaio.c:39
static errcode_t quota_get_memzero(unsigned long size, void *ptr)
Definition: quotaio.h:241
void quota_data_sub(quota_ctx_t qctx, struct f2fs_inode *inode, qsize_t space)
Definition: mkquota.c:250
void quota_release_context(quota_ctx_t *qctx)
Definition: mkquota.c:182
void quota_data_inodes(quota_ctx_t qctx, struct f2fs_inode *inode, int adjust)
Definition: mkquota.c:271
void quota_data_add(quota_ctx_t qctx, struct f2fs_inode *inode, qsize_t space)
Definition: mkquota.c:228
int64_t qsize_t
Definition: quotaio.h:33
errcode_t quota_file_close(struct f2fs_sb_info *sbi, struct quota_handle *h, int update_filesize)
Definition: quotaio.c:197
errcode_t quota_write_inode(struct f2fs_sb_info *sbi, enum quota_type qtype)
Definition: mkquota.c:66
int32_t f2fs_ino_t
Definition: quotaio.h:34
struct quota_ctx * quota_ctx_t
Definition: quotaio.h:65
qf_szchk_type_t
Definition: quotaio.h:48
@ QF_SZCHK_NONE
Definition: quotaio.h:49
@ QF_SZCHK_ERR
Definition: quotaio.h:50
@ QF_SZCHK_INLINE
Definition: quotaio.h:51
@ QF_SZCHK_REGFILE
Definition: quotaio.h:52
u32 qf_last_blkofs[]
Definition: quotaio.c:38
quota_type
Definition: quotaio.h:37
@ USRQUOTA
Definition: quotaio.h:38
@ PRJQUOTA
Definition: quotaio.h:40
@ MAXQUOTAS
Definition: quotaio.h:41
@ GRPQUOTA
Definition: quotaio.h:39
__u32 qid_t
Definition: quotaio_tree.h:16
Definition: quotaio.h:152
qid_t dq_id
Definition: quotaio.h:154
struct util_dqblk dq_dqb
Definition: quotaio.h:157
int dq_flags
Definition: quotaio.h:155
struct dquot * dq_next
Definition: quotaio.h:153
struct quota_handle * dq_h
Definition: quotaio.h:156
Definition: f2fs_fs.h:1034
struct f2fs_sb_info * sbi
Definition: quotaio.h:68
struct dict_t * quota_dict[MAXQUOTAS]
Definition: quotaio.h:69
struct dict_t linked_inode_dict
Definition: quotaio.h:71
Definition: quotaio.h:115
f2fs_ino_t ino
Definition: quotaio.h:117
int64_t filesize
Definition: quotaio.h:118
struct f2fs_sb_info * sbi
Definition: quotaio.h:116
Definition: quotaio.h:122
enum quota_type qh_type
Definition: quotaio.h:123
struct quotafile_ops * qh_ops
Definition: quotaio.h:132
int qh_fmt
Definition: quotaio.h:124
int qh_file_flags
Definition: quotaio.h:125
unsigned int(* read)(struct quota_file *qf, long offset, void *buf, unsigned int size)
Definition: quotaio.h:128
unsigned int(* write)(struct quota_file *qf, long offset, void *buf, unsigned int size)
Definition: quotaio.h:130
struct quota_file qh_qf
Definition: quotaio.h:127
struct util_dqinfo qh_info
Definition: quotaio.h:133
int qh_io_flags
Definition: quotaio.h:126
Definition: quotaio.h:163
int(* commit_dquot)(struct dquot *dquot)
Definition: quotaio.h:177
int(* new_io)(struct quota_handle *h)
Definition: quotaio.h:169
int(* end_io)(struct quota_handle *h)
Definition: quotaio.h:171
int(* init_io)(struct quota_handle *h, enum quota_type qtype)
Definition: quotaio.h:167
int(* check_file)(struct quota_handle *h, int type)
Definition: quotaio.h:165
int(* report)(struct quota_handle *h, int verbose)
Definition: quotaio.h:184
int(* write_info)(struct quota_handle *h)
Definition: quotaio.h:173
int(* scan_dquots)(struct quota_handle *h, int(*process_dquot)(struct dquot *dquot, void *data), void *data)
Definition: quotaio.h:179
Definition: quotaio.h:137
time_t dqb_btime
Definition: quotaio.h:144
qsize_t dqb_curinodes
Definition: quotaio.h:140
qsize_t dqb_ihardlimit
Definition: quotaio.h:138
qsize_t dqb_isoftlimit
Definition: quotaio.h:139
qsize_t dqb_bsoftlimit
Definition: quotaio.h:142
time_t dqb_itime
Definition: quotaio.h:145
qsize_t dqb_curspace
Definition: quotaio.h:143
qsize_t dqb_bhardlimit
Definition: quotaio.h:141
struct v2_mem_dqblk v2_mdqb
Definition: quotaio.h:147
Definition: quotaio.h:107
struct v2_mem_dqinfo v2_mdqi
Definition: quotaio.h:111
time_t dqi_igrace
Definition: quotaio.h:109
time_t dqi_bgrace
Definition: quotaio.h:108
Definition: dqblk_v2.h:22
Definition: dqblk_v2.h:13
void verbose(const char *fmt,...)
Definition: util.cpp:69