Both of these commands were subtly broken. Fortunately when used together the
authorEric Andersen <andersen@codepoet.org>
Tue, 19 Sep 2000 21:13:55 +0000 (21:13 -0000)
committerEric Andersen <andersen@codepoet.org>
Tue, 19 Sep 2000 21:13:55 +0000 (21:13 -0000)
damage was only ugly fscks.  Reverted to the static inline code so they work
correctly again,
 -Erik

fsck_minix.c
mkfs_minix.c
util-linux/fsck_minix.c
util-linux/mkfs_minix.c

index bc92f20b7721317ba9ae52755dea86d8efb70c94..04c2b3317a403d0a8a69b2093cfe503fc88374c1 100644 (file)
@@ -268,8 +268,12 @@ static void recursive_check(unsigned int ino);
 static void recursive_check2(unsigned int ino);
 #endif
 
-#define inode_in_use(x) (isset(inode_map,(x)))
-#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1))
+static inline int bit(char * a,unsigned int i)
+{
+         return (a[i >> 3] & (1<<(i & 7))) != 0;
+}
+#define inode_in_use(x) (bit(inode_map,(x)))
+#define zone_in_use(x) (bit(zone_map,(x)-FIRSTZONE+1))
 
 #define mark_inode(x) (setbit(inode_map,(x)),changed=1)
 #define unmark_inode(x) (clrbit(inode_map,(x)),changed=1)
index 1bbccd978ad02cded8518b3f5ed7663aef5224c0..fafcc230e14bdf44b269492d3d76ceae49c0ba49 100644 (file)
@@ -242,8 +242,12 @@ static unsigned short good_blocks_table[MAX_GOOD_BLOCKS];
 static int used_good_blocks = 0;
 static unsigned long req_nr_inodes = 0;
 
-#define inode_in_use(x) (isset(inode_map,(x)))
-#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1))
+static inline int bit(char * a,unsigned int i)
+{
+         return (a[i >> 3] & (1<<(i & 7))) != 0;
+}
+#define inode_in_use(x) (bit(inode_map,(x)))
+#define zone_in_use(x) (bit(zone_map,(x)-FIRSTZONE+1))
 
 #define mark_inode(x) (setbit(inode_map,(x)))
 #define unmark_inode(x) (clrbit(inode_map,(x)))
index bc92f20b7721317ba9ae52755dea86d8efb70c94..04c2b3317a403d0a8a69b2093cfe503fc88374c1 100644 (file)
@@ -268,8 +268,12 @@ static void recursive_check(unsigned int ino);
 static void recursive_check2(unsigned int ino);
 #endif
 
-#define inode_in_use(x) (isset(inode_map,(x)))
-#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1))
+static inline int bit(char * a,unsigned int i)
+{
+         return (a[i >> 3] & (1<<(i & 7))) != 0;
+}
+#define inode_in_use(x) (bit(inode_map,(x)))
+#define zone_in_use(x) (bit(zone_map,(x)-FIRSTZONE+1))
 
 #define mark_inode(x) (setbit(inode_map,(x)),changed=1)
 #define unmark_inode(x) (clrbit(inode_map,(x)),changed=1)
index 1bbccd978ad02cded8518b3f5ed7663aef5224c0..fafcc230e14bdf44b269492d3d76ceae49c0ba49 100644 (file)
@@ -242,8 +242,12 @@ static unsigned short good_blocks_table[MAX_GOOD_BLOCKS];
 static int used_good_blocks = 0;
 static unsigned long req_nr_inodes = 0;
 
-#define inode_in_use(x) (isset(inode_map,(x)))
-#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1))
+static inline int bit(char * a,unsigned int i)
+{
+         return (a[i >> 3] & (1<<(i & 7))) != 0;
+}
+#define inode_in_use(x) (bit(inode_map,(x)))
+#define zone_in_use(x) (bit(zone_map,(x)-FIRSTZONE+1))
 
 #define mark_inode(x) (setbit(inode_map,(x)))
 #define unmark_inode(x) (clrbit(inode_map,(x)))