A couple of bugfixes found by suse autobuilding:

1/ ia64 appear to have __clone2, not clone.
2/ Including "++" in the arg to a macro is a bad thing to do.

Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
NeilBrown 2008-11-07 14:46:30 +11:00
parent 1679bef2ee
commit 97f734fde2
2 changed files with 17 additions and 3 deletions

14
mdmon.c
View File

@ -79,13 +79,25 @@ int run_child(void *v)
return 0;
}
int clone_monitor(struct supertype *container)
#ifdef __ia64__
int __clone2(int (*fn)(void *),
void *child_stack_base, size_t stack_size,
int flags, void *arg, ...
/* pid_t *pid, struct user_desc *tls, pid_t *ctid */ );
#endif
int clone_monitor(struct supertype *container)
{
static char stack[4096];
#ifdef __ia64__
mon_tid = __clone2(run_child, stack, sizeof(stack),
CLONE_FS|CLONE_FILES|CLONE_VM|CLONE_SIGHAND|CLONE_THREAD,
container);
#else
mon_tid = clone(run_child, stack+4096-64,
CLONE_FS|CLONE_FILES|CLONE_VM|CLONE_SIGHAND|CLONE_THREAD,
container);
#endif
mgr_tid = syscall(SYS_gettid);

View File

@ -271,8 +271,10 @@ static __u32 __gen_imsm_checksum(struct imsm_super *mpb)
__u32 *p = (__u32 *) mpb;
__u32 sum = 0;
while (end--)
sum += __le32_to_cpu(*p++);
while (end--) {
sum += __le32_to_cpu(*p);
p++;
}
return sum - __le32_to_cpu(mpb->check_sum);
}