vol: use ffs from opr instead of inline
authorBenjamin Kaduk <kaduk@mit.edu>
Wed, 14 Jan 2015 20:32:47 +0000 (15:32 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Wed, 22 Apr 2015 15:54:28 +0000 (11:54 -0400)
volume.c defined its own ffs() macro if AFS_HAVE_FFS was not
defined.  Now that ffs() is in opr, just use it from there always.

Change-Id: Ia80a439924541be236b3221b9480143b511c885a
Reviewed-on: http://gerrit.openafs.org/11674
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/vol/volume.c

index 9e8db4a..a7c5d75 100644 (file)
@@ -36,6 +36,7 @@
 #else
 # include <opr/lockstub.h>
 #endif
+#include <opr/ffs.h>
 
 #include <afs/afsint.h>
 
@@ -237,24 +238,6 @@ VolumeHashTable_t VolumeHashTable = {
 static void VInitVolumeHash(void);
 
 
-#ifndef AFS_HAVE_FFS
-/* This macro is used where an ffs() call does not exist. Was in util/ffs.c */
-ffs(x)
-{
-    afs_int32 ffs_i;
-    afs_int32 ffs_tmp = x;
-    if (ffs_tmp == 0)
-       return (-1);
-    else
-       for (ffs_i = 1;; ffs_i++) {
-           if (ffs_tmp & 1)
-               return (ffs_i);
-           else
-               ffs_tmp >>= 1;
-       }
-}
-#endif /* !AFS_HAVE_FFS */
-
 #ifdef AFS_PTHREAD_ENV
 /**
  * disk partition queue element
@@ -6435,7 +6418,7 @@ VAllocBitmapEntry_r(Error * ec, Volume * vp,
            index->bitmapOffset = (afs_uint32) (bp - index->bitmap);
            while (*bp == 0xff)
                bp++;
-           o = ffs(~*bp) - 1;  /* ffs is documented in BSTRING(3) */
+           o = opr_ffs(~*bp) - 1;
            *bp |= (1 << o);
            ret = ((bp - index->bitmap) * 8 + o);
 #ifdef AFS_DEMAND_ATTACH_FS