]> git.openfabrics.org - ~emulex/infiniband.git/commitdiff
lustre/quota: improper assert in osc_quota_chkdq()
authorNiu Yawei <yawei.niu@intel.com>
Sat, 1 Mar 2014 02:16:45 +0000 (21:16 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Mar 2014 03:13:21 +0000 (19:13 -0800)
In osc_quota_chkdq(), we should never try to access oqi found
from hash, since it could have been freed by osc_quota_setdq().

Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-on: http://review.whamcloud.com/8460
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4336
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/osc/osc_quota.c

index 6045a78a2baa21d309bbc3ba7712f2d23996527a..f395ae4ec94497ad35dc48b05a37c91d4953a438 100644 (file)
@@ -51,11 +51,8 @@ int osc_quota_chkdq(struct client_obd *cli, const unsigned int qid[])
 
                oqi = cfs_hash_lookup(cli->cl_quota_hash[type], &qid[type]);
                if (oqi) {
-                       obd_uid id = oqi->oqi_id;
-
-                       LASSERTF(id == qid[type],
-                                "The ids don't match %u != %u\n",
-                                id, qid[type]);
+                       /* do not try to access oqi here, it could have been
+                        * freed by osc_quota_setdq() */
 
                        /* the slot is busy, the user is about to run out of
                         * quota space on this OST */