379 |
|| DIRSIZ (DIRECT_NAMLEN (entry)) > read_disk_entry (entry->d_reclen) |
|| DIRSIZ (DIRECT_NAMLEN (entry)) > read_disk_entry (entry->d_reclen) |
380 |
|| memchr (entry->d_name, '\0', DIRECT_NAMLEN (entry))) |
|| memchr (entry->d_name, '\0', DIRECT_NAMLEN (entry))) |
381 |
{ |
{ |
382 |
fprintf (stderr, "Bad directory entry: inode: %d offset: %zd\n", |
fprintf (stderr, "Bad directory entry: inode: %Ld offset: %zd\n", |
383 |
dp->dn->number, currentoff - blockaddr + idx * DIRBLKSIZ); |
dp->dn->number, currentoff - blockaddr + idx * DIRBLKSIZ); |
384 |
return ENOENT; |
return ENOENT; |
385 |
} |
} |
502 |
vm_address_t fromoff, tooff; |
vm_address_t fromoff, tooff; |
503 |
int totfreed; |
int totfreed; |
504 |
error_t err; |
error_t err; |
505 |
off_t oldsize = 0; |
size_t oldsize = 0; |
506 |
|
|
507 |
assert (ds->type == CREATE); |
assert (ds->type == CREATE); |
508 |
|
|
585 |
assert (needed <= DIRBLKSIZ); |
assert (needed <= DIRBLKSIZ); |
586 |
|
|
587 |
oldsize = dp->dn_stat.st_size; |
oldsize = dp->dn_stat.st_size; |
588 |
|
if ((off_t)(oldsize + DIRBLKSIZ) != dp->dn_stat.st_size) |
589 |
|
{ |
590 |
|
/* We can't possibly map the whole directory in. */ |
591 |
|
munmap ((caddr_t) ds->mapbuf, ds->mapextent); |
592 |
|
return EOVERFLOW; |
593 |
|
} |
594 |
while (oldsize + DIRBLKSIZ > dp->allocsize) |
while (oldsize + DIRBLKSIZ > dp->allocsize) |
595 |
{ |
{ |
596 |
err = diskfs_grow (dp, oldsize + DIRBLKSIZ, cred); |
err = diskfs_grow (dp, oldsize + DIRBLKSIZ, cred); |