mirror of https://github.com/vitalif/e2fsprogs
65 lines
2.0 KiB
C
65 lines
2.0 KiB
C
/** mkquota.h
|
|
*
|
|
* Interface to the quota library.
|
|
*
|
|
* The quota library provides interface for creating and updating the quota
|
|
* files and the ext4 superblock fields. It supports the new VFS_V1 quota
|
|
* format. The quota library also provides support for keeping track of quotas
|
|
* in memory.
|
|
* The typical way to use the quota library is as follows:
|
|
* {
|
|
* quota_ctx_t qctx;
|
|
*
|
|
* quota_init_context(&qctx, fs, -1);
|
|
* {
|
|
* quota_compute_usage(qctx, -1);
|
|
* AND/OR
|
|
* quota_data_add/quota_data_sub/quota_data_inodes();
|
|
* }
|
|
* quota_write_inode(qctx, USRQUOTA);
|
|
* quota_write_inode(qctx, GRPQUOTA);
|
|
* quota_release_context(&qctx);
|
|
* }
|
|
*
|
|
* This initial version does not support reading the quota files. This support
|
|
* will be added in near future.
|
|
*
|
|
* Aditya Kali <adityakali@google.com>
|
|
*/
|
|
|
|
#ifndef __QUOTA_QUOTAIO_H__
|
|
#define __QUOTA_QUOTAIO_H__
|
|
|
|
#include "ext2fs/ext2_fs.h"
|
|
#include "ext2fs/ext2fs.h"
|
|
#include "quotaio.h"
|
|
#include "../e2fsck/dict.h"
|
|
|
|
typedef struct quota_ctx *quota_ctx_t;
|
|
|
|
struct quota_ctx {
|
|
ext2_filsys fs;
|
|
dict_t *quota_dict[MAXQUOTAS];
|
|
};
|
|
|
|
/* In mkquota.c */
|
|
errcode_t quota_init_context(quota_ctx_t *qctx, ext2_filsys fs, int qtype);
|
|
void quota_data_inodes(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
|
|
int adjust);
|
|
void quota_data_add(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
|
|
qsize_t space);
|
|
void quota_data_sub(quota_ctx_t qctx, struct ext2_inode *inode, ext2_ino_t ino,
|
|
qsize_t space);
|
|
errcode_t quota_write_inode(quota_ctx_t qctx, int qtype);
|
|
errcode_t quota_update_limits(quota_ctx_t qctx, ext2_ino_t qf_ino, int type);
|
|
errcode_t quota_compute_usage(quota_ctx_t qctx);
|
|
void quota_release_context(quota_ctx_t *qctx);
|
|
|
|
errcode_t quota_remove_inode(ext2_filsys fs, int qtype);
|
|
int quota_file_exists(ext2_filsys fs, int qtype, int fmt);
|
|
void quota_set_sb_inum(ext2_filsys fs, ext2_ino_t ino, int qtype);
|
|
errcode_t quota_compare_and_update(quota_ctx_t qctx, int qtype,
|
|
int *usage_inconsistent);
|
|
|
|
#endif /* __QUOTA_QUOTAIO_H__ */
|