/* the lock to protect lqe_glbl_data */
struct mutex lqe_glbl_data_lock;
struct lqe_glbl_data *lqe_glbl_data;
+ struct work_struct lqe_work; /* workitem to free lvbo */
};
#define lqe_qtype(lqe) (lqe->lqe_site->lqs_qtype)
struct lqe_glbl_entry {
__u64 lge_qunit;
- unsigned long lge_edquot:1,
+ unsigned long lge_idx:16,
+ /* index of target */
+ lge_edquot:1,
/* true when minimum qunit is set */
lge_qunit_set:1,
/* qunit or edquot is changed - need
/* debugging macros */
#ifdef LIBCFS_DEBUG
#define lquota_lqe_debug(msgdata, mask, cdls, lqe, fmt, a...) do { \
- CFS_CHECK_STACK(msgdata, mask, cdls); \
- \
if (((mask) & D_CANTMASK) != 0 || \
((libcfs_debug & (mask)) != 0 && \
(libcfs_subsystem_debug & DEBUG_SUBSYSTEM) != 0)) \
void lquota_generate_fid(struct lu_fid *, int, int);
int lquota_extract_fid(const struct lu_fid *, int *, int *);
const struct dt_index_features *glb_idx_feature(struct lu_fid *);
+int lquota_obj_iter(const struct lu_env *env, struct dt_device *dev,
+ struct dt_object *obj, struct obd_quotactl *oqctl,
+ char *buffer, int size, bool is_glb, bool is_md);
/* lquota_entry.c */
/* site create/destroy */