/* rather weak necessary condition */
static int
-may_be_adfs(const char *s) {
+may_be_adfs(const struct adfs_super_block *sb) {
char *p;
int sum;
- p = (char *) s + 511;
+ p = (char *)sb->s_checksum;
sum = 0;
- while(--p != s)
+ while(--p != (char *)sb)
sum = (sum >> 8) + (sum & 0xff) + *p;
- return (sum == p[511]);
+ return (sum & 0xff) == sb->s_checksum[0];
}
static int is_reiserfs_magic_string (struct reiserfs_super_block * rs)
goto io_error;
/* only a weak test */
- if (may_be_adfs((char *) &adfssb)
+ if (may_be_adfs(&adfssb)
&& (adfsblksize(adfssb) >= 8 &&
adfsblksize(adfssb) <= 10))
type = "adfs";