Whamcloud - gitweb
LU-7038 obdclass: lu_site_purge() to handle purge-all
[fs/lustre-release.git] / libcfs / libcfs / prng.c
index b55b0bf..8945c4c 100644 (file)
@@ -39,6 +39,7 @@
  * algorithm recommended by Marsaglia
 */
 
+#include <linux/random.h>
 #include <libcfs/libcfs.h>
 
 /*
@@ -81,7 +82,7 @@ unsigned int cfs_rand(void)
 
         return ((seed_x << 16) + (seed_y & 65535));
 }
-CFS_EXPORT_SYMBOL(cfs_rand);
+EXPORT_SYMBOL(cfs_rand);
 
 /**
  * cfs_srand - sets the inital seed
@@ -98,7 +99,7 @@ void cfs_srand(unsigned int seed1, unsigned int seed2)
         if (seed2)
                 seed_y = seed2;
 }
-CFS_EXPORT_SYMBOL(cfs_srand);
+EXPORT_SYMBOL(cfs_srand);
 
 /**
  * cfs_get_random_bytes - generate a bunch of random numbers
@@ -109,31 +110,31 @@ CFS_EXPORT_SYMBOL(cfs_srand);
  */
 void cfs_get_random_bytes(void *buf, int size)
 {
-        int *p = buf;
-        int rem, tmp;
+       int *p = buf;
+       int rem, tmp;
 
-        LASSERT(size >= 0);
+       LASSERT(size >= 0);
 
-        rem = min((int)((unsigned long)buf & (sizeof(int) - 1)), size);
-        if (rem) {
-                cfs_get_random_bytes_prim(&tmp, sizeof(tmp));
-                tmp ^= cfs_rand();
-                memcpy(buf, &tmp, rem);
-                p = buf + rem;
-                size -= rem;
-        }
+       rem = min((int)((unsigned long)buf & (sizeof(int) - 1)), size);
+       if (rem) {
+               get_random_bytes(&tmp, sizeof(tmp));
+               tmp ^= cfs_rand();
+               memcpy(buf, &tmp, rem);
+               p = buf + rem;
+               size -= rem;
+       }
 
-        while (size >= sizeof(int)) {
-                cfs_get_random_bytes_prim(&tmp, sizeof(tmp));
-                *p = cfs_rand() ^ tmp;
-                size -= sizeof(int);
-                p++;
-        }
-        buf = p;
-        if (size) {
-                cfs_get_random_bytes_prim(&tmp, sizeof(tmp));
-                tmp ^= cfs_rand();
-                memcpy(buf, &tmp, size);
-        }
+       while (size >= sizeof(int)) {
+               get_random_bytes(&tmp, sizeof(tmp));
+               *p = cfs_rand() ^ tmp;
+               size -= sizeof(int);
+               p++;
+       }
+       buf = p;
+       if (size) {
+               get_random_bytes(&tmp, sizeof(tmp));
+               tmp ^= cfs_rand();
+               memcpy(buf, &tmp, size);
+       }
 }
-CFS_EXPORT_SYMBOL(cfs_get_random_bytes);
+EXPORT_SYMBOL(cfs_get_random_bytes);