Whamcloud - gitweb
Branch b1_8
authortianzy <tianzy>
Thu, 14 May 2009 07:15:29 +0000 (07:15 +0000)
committertianzy <tianzy>
Thu, 14 May 2009 07:15:29 +0000 (07:15 +0000)
fix the problem when mdt.quota_type or ost.quota_type is set and there
is not any quota set before
b=19442
i=johann
i=panda

lustre/lvfs/lustre_quota_fmt.c
lustre/quota/quota_ctl.c

index 2351548..f1abc3a 100644 (file)
@@ -104,6 +104,12 @@ int check_quota_file(struct file *f, struct inode *inode, int type,
         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);
index 1da7765..945f075 100644 (file)
@@ -78,6 +78,9 @@ void build_lqs(struct obd_device *obd)
         for (i = 0; i < MAXQUOTAS; i++) {
                 struct dquot_id *dqid, *tmp;
 
+                if (sb_dqopt(qctxt->lqc_sb)->files[i] == NULL)
+                        continue;
+
 #ifndef KERNEL_SUPPORTS_QUOTA_READ
                 rc = fsfilt_qids(obd, sb_dqopt(qctxt->lqc_sb)->files[i], NULL,
                                  i, &id_list);