Staging: lustre: Convert array index from the loop bound to the loop index.
authorSandhya Bankar <bankarsandhya512@gmail.com>
Sat, 17 Sep 2016 23:53:49 +0000 (05:23 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Sep 2016 11:23:40 +0000 (13:23 +0200)
Convert array index from the loop bound to the loop index.

The structure cl_env_percpu[NR_CPUS] has been initializing for each possible
cpu (i.e 0 to i). During initialization if any error will occurred, the error
handling code should uninitialize cl_env_percpu upto i. But currently
unitialization is repeatedly done for the same cl_env_percpu[i] element.
This does not seems to be correct.

Used below semantic patch to identify this issue:

@@
expression e1,e2,ar;
@@
for(e1 = 0; e1 < e2; e1++) { <...
  ar[
- e2
+ e1
  ]
  ...> }

Signed-off-by: Sandhya Bankar <bankarsandhya512@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/obdclass/cl_object.c

index e493c80..3199dd4 100644 (file)
@@ -1022,7 +1022,7 @@ static int cl_env_percpu_init(void)
                 * thus we must uninitialize up to i, the rest are undefined.
                 */
                for (j = 0; j < i; j++) {
-                       cle = &cl_env_percpu[i];
+                       cle = &cl_env_percpu[j];
                        lu_context_exit(&cle->ce_ses);
                        lu_context_fini(&cle->ce_ses);
                        lu_env_fini(&cle->ce_lu);