summaryrefslogtreecommitdiff
path: root/fsck_minix.c
diff options
context:
space:
mode:
authorEric Andersen2000-09-19 21:13:55 +0000
committerEric Andersen2000-09-19 21:13:55 +0000
commit56f3e353da3facd5f4a04eadf813312433f5363f (patch)
treee22660aac1fd00f57b3b5d2d558d9b237bf513cc /fsck_minix.c
parent06f64b23701d1bd3d858f374e66784cb95f04882 (diff)
downloadbusybox-56f3e353da3facd5f4a04eadf813312433f5363f.zip
busybox-56f3e353da3facd5f4a04eadf813312433f5363f.tar.gz
Both of these commands were subtly broken. Fortunately when used together the
damage was only ugly fscks. Reverted to the static inline code so they work correctly again, -Erik
Diffstat (limited to 'fsck_minix.c')
-rw-r--r--fsck_minix.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fsck_minix.c b/fsck_minix.c
index bc92f20..04c2b33 100644
--- a/fsck_minix.c
+++ b/fsck_minix.c
@@ -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)