Distinguish between lseek errors and read errores.
MFC after: 2 weeks
This commit is contained in:
parent
77f552e221
commit
9ace37176e
@ -35,6 +35,7 @@ static const char rcsid[] =
|
||||
"$FreeBSD$";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -329,8 +330,11 @@ delete(int f, struct bootblock *boot, struct fatEntry *fat, cl_t startcl,
|
||||
}
|
||||
off = startcl * boot->bpbSecPerClust + boot->ClusterOffset;
|
||||
off *= boot->bpbBytesPerSec;
|
||||
if (lseek(f, off, SEEK_SET) != off
|
||||
|| read(f, delbuf, clsz) != clsz) {
|
||||
if (lseek(f, off, SEEK_SET) != off) {
|
||||
perr("Unable to lseek to %" PRId64, off);
|
||||
return FSFATAL;
|
||||
}
|
||||
if (read(f, delbuf, clsz) != clsz) {
|
||||
perr("Unable to read directory");
|
||||
return FSFATAL;
|
||||
}
|
||||
@ -338,8 +342,11 @@ delete(int f, struct bootblock *boot, struct fatEntry *fat, cl_t startcl,
|
||||
*s = SLOT_DELETED;
|
||||
s += 32;
|
||||
}
|
||||
if (lseek(f, off, SEEK_SET) != off
|
||||
|| write(f, delbuf, clsz) != clsz) {
|
||||
if (lseek(f, off, SEEK_SET) != off) {
|
||||
perr("Unable to lseek to %" PRId64, off);
|
||||
return FSFATAL;
|
||||
}
|
||||
if (write(f, delbuf, clsz) != clsz) {
|
||||
perr("Unable to write directory");
|
||||
return FSFATAL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user