Grow: fix recent breakage - lseek return status.
Recent fix to check lseek64 return status got it badly wrong. It doesn't return 0 on success!! Fix it. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
1ff9833928
commit
a847575aa1
11
Grow.c
11
Grow.c
|
@ -1337,10 +1337,13 @@ int grow_backup(struct mdinfo *sra,
|
|||
bsb.sb_csum2 = bsb_csum((char*)&bsb,
|
||||
((char*)&bsb.sb_csum2)-((char*)&bsb));
|
||||
|
||||
rv |= lseek64(destfd[i], destoffsets[i] - 4096, 0);
|
||||
if (lseek64(destfd[i], destoffsets[i] - 4096, 0) != destoffsets[i] - 4096)
|
||||
rv = 1;
|
||||
rv = rv ?: write(destfd[i], &bsb, 512);
|
||||
if (destoffsets[i] > 4096) {
|
||||
rv |= lseek64(destfd[i], destoffsets[i]+stripes*chunk*odata, 0);
|
||||
if (lseek64(destfd[i], destoffsets[i]+stripes*chunk*odata, 0) !=
|
||||
destoffsets[i]+stripes*chunk*odata)
|
||||
rv = 1;
|
||||
rv = rv ?: write(destfd[i], &bsb, 512);
|
||||
}
|
||||
fsync(destfd[i]);
|
||||
|
@ -1412,7 +1415,9 @@ int wait_backup(struct mdinfo *sra,
|
|||
if (memcmp(bsb.magic, "md_backup_data-2", 16) == 0)
|
||||
bsb.sb_csum2 = bsb_csum((char*)&bsb,
|
||||
((char*)&bsb.sb_csum2)-((char*)&bsb));
|
||||
rv |= lseek64(destfd[i], destoffsets[i]-4096, 0);
|
||||
if (lseek64(destfd[i], destoffsets[i]-4096, 0) !=
|
||||
destoffsets[i]-4096)
|
||||
rv = 1;
|
||||
rv = rv ?: write(destfd[i], &bsb, 512);
|
||||
fsync(destfd[i]);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue