/* For quota slave, acquire/release quota from master if needed */
int (*quota_acquire) (struct obd_device *, unsigned int, unsigned int);
+ /* For quota slave, check whether specified uid/gid's remaining quota
+ * can finish a write rpc */
+ int (*quota_chkquota) (struct obd_device *, unsigned int, unsigned int,
+ int);
+
/* For quota client, poll if the quota check done */
int (*quota_poll_check) (struct obd_export *, struct if_quotacheck *);
}
static inline int lquota_setup(quota_interface_t *interface,
- struct obd_device *obd)
+ struct obd_device *obd)
{
int rc;
ENTRY;
RETURN(rc);
}
+static inline int lquota_chkquota(quota_interface_t *interface,
+ struct obd_device *obd,
+ unsigned int uid, unsigned int gid,
+ int npage)
+{
+ int rc;
+ ENTRY;
+
+ QUOTA_CHECK_OP(interface, chkquota);
+ rc = QUOTA_OP(interface, chkquota)(obd, uid, gid, npage);
+ RETURN(rc);
+}
+
int lprocfs_rd_bunit(char *page, char **start, off_t off, int count,
int *eof, void *data);
int lprocfs_rd_iunit(char *page, char **start, off_t off, int count,