{
size_t n;
n = OS_WRITE(fp, info, sizeof(*info));
- return (n == 1) ? 0 : -2;
+ return (n == sizeof(*info)) ? 0 : -2;
}
/*
* Paranoia: check that the file is really the right size
*/
- if (OS_SIZE(inodeFile) * sizeof(struct ViceInodeInfo)) {
+ if (OS_SIZE(inodeFile) != ninodes * sizeof(struct ViceInodeInfo)) {
Log("Wrong size (%d instead of %lu) in inode file for %s\n",
(int) OS_SIZE(inodeFile),
(long unsigned int) ninodes * sizeof(struct ViceInodeInfo),
if (!judgeFun ||
(*judgeFun) (&info, singleVolumeNumber, rock)) {
- ret = 1;
- if ((*writeFun) (fp, &info, path1, dname) < 0) {
+ ret = (*writeFun) (fp, &info, path1, dname);
+ if (ret < 0) {
+ Log("_namei_examine_special: writeFun returned %d\n", ret);
ret = -1;
+ } else {
+ ret = 1;
}
}
if (!judgeFun ||
(*judgeFun) (&info, singleVolumeNumber, rock)) {
- ret = 1;
- if ((*writeFun) (fp, &info, path3, dname) < 0) {
+ ret = (*writeFun) (fp, &info, path3, dname);
+ if (ret < 0) {
+ Log("_namei_examine_reg: writeFun returned %d\n", ret);
ret = -1;
+ } else {
+ ret = 1;
}
}