#include <linux/init.h>
#include <linux/module.h>
#include <linux/slab.h>
-#include <linux/quotaio_v1.h>
+#ifdef HAVE_QUOTAIO_V1_H
+# include <linux/quotaio_v1.h>
+#endif
#include <asm/byteorder.h>
#include <asm/uaccess.h>
static const uint quota_magics[] = LUSTRE_INITQMAGICS;
const uint *quota_versions = lustre_initqversions[version];
+ if (!inode && !f) {
+ CERROR("check_quota_file failed!\n");
+ libcfs_debug_dumpstack(NULL);
+ return -EINVAL;
+ }
+
if (f) {
fs = get_fs();
set_fs(KERNEL_DS);
/* Invalidated quota? */
if (!dquot->dq_info || !(filp = dquot->dq_info->qi_files[type])) {
CDEBUG(D_ERROR, "VFS: Quota invalidated while reading!\n");
- return -EIO;
+ return -ESRCH;
}
version = dquot->dq_info->qi_version;
ENTRY;
+ LASSERT(ergo(fp == NULL, inode != NULL));
+
if (check_quota_file(fp, inode, type, LUSTRE_QUOTA_V2) == 0)
version = LUSTRE_QUOTA_V2;
else {