Lines Matching refs:dirp

225 	struct ext2fs_direct *dirp = idesc->id_dirp;
239 if (fs2h32(dirp->e2d_ino) != 0 && dirp->e2d_namlen == 1 &&
240 dirp->e2d_name[0] == '.') {
241 if (fs2h32(dirp->e2d_ino) != idesc->id_number) {
243 dirp->e2d_ino = h2fs32(idesc->id_number);
249 && (dirp->e2d_type != EXT2_FT_DIR)) {
251 dirp->e2d_type = EXT2_FT_DIR;
267 if (fs2h32(dirp->e2d_ino) != 0 && strcmp(dirp->e2d_name, "..") != 0) {
269 dirp->e2d_name);
270 } else if (fs2h16(dirp->e2d_reclen) < entrysize) {
272 } else if (fs2h16(dirp->e2d_reclen) < 2 * entrysize) {
273 proto.e2d_reclen = dirp->e2d_reclen;
274 memcpy(dirp, &proto, (size_t)entrysize);
278 n = fs2h16(dirp->e2d_reclen) - entrysize;
280 memcpy(dirp, &proto, (size_t)entrysize);
282 lncntp[fs2h32(dirp->e2d_ino)]--;
283 dirp = (struct ext2fs_direct *)((char *)(dirp) + entrysize);
284 memset(dirp, 0, (size_t)n);
285 dirp->e2d_reclen = h2fs16(n);
303 n = EXT2FS_DIRSIZ(dirp->e2d_namlen);
304 if (fs2h16(dirp->e2d_reclen) < n + entrysize)
306 proto.e2d_reclen = h2fs16(fs2h16(dirp->e2d_reclen) - n);
307 dirp->e2d_reclen = h2fs16(n);
309 lncntp[fs2h32(dirp->e2d_ino)]--;
310 dirp = (struct ext2fs_direct *)((char *)(dirp) + n);
311 memset(dirp, 0, (size_t)fs2h16(proto.e2d_reclen));
312 dirp->e2d_reclen = proto.e2d_reclen;
314 if (fs2h32(dirp->e2d_ino) != 0 &&
315 dirp->e2d_namlen == 2 &&
316 strncmp(dirp->e2d_name, "..", 2) == 0) {
317 inp->i_dotdot = fs2h32(dirp->e2d_ino);
320 && dirp->e2d_type != EXT2_FT_DIR) {
322 dirp->e2d_type = EXT2_FT_DIR;
328 if (fs2h32(dirp->e2d_ino) != 0 &&
329 dirp->e2d_namlen == 1 &&
330 strncmp(dirp->e2d_name, ".", 1) != 0) {
333 dirp->e2d_name);
335 } else if (fs2h16(dirp->e2d_reclen) < entrysize) {
345 proto.e2d_reclen = dirp->e2d_reclen;
346 memcpy(dirp, &proto, (size_t)entrysize);
351 if (fs2h32(dirp->e2d_ino) != 0)
352 lncntp[fs2h32(dirp->e2d_ino)]--;
355 if (fs2h32(dirp->e2d_ino) == 0)
357 if (dirp->e2d_namlen <= 2 &&
358 dirp->e2d_name[0] == '.' &&
360 if (dirp->e2d_namlen == 1) {
362 dirp->e2d_ino = 0;
367 if (dirp->e2d_name[1] == '.') {
369 dirp->e2d_ino = 0;
377 if (fs2h32(dirp->e2d_ino) > maxino ||
378 (fs2h32(dirp->e2d_ino) < EXT2_FIRSTINO &&
379 fs2h32(dirp->e2d_ino) != EXT2_ROOTINO)) {
380 fileerror(idesc->id_number, fs2h32(dirp->e2d_ino), "I OUT OF RANGE");
384 switch (statemap[fs2h32(dirp->e2d_ino)]) {
388 fileerror(idesc->id_number, fs2h32(dirp->e2d_ino), "UNALLOCATED");
396 if (statemap[fs2h32(dirp->e2d_ino)] == FCLEAR)
404 fileerror(idesc->id_number, fs2h32(dirp->e2d_ino), errmsg);
407 dp = ginode(fs2h32(dirp->e2d_ino));
408 statemap[fs2h32(dirp->e2d_ino)] =
410 lncntp[fs2h32(dirp->e2d_ino)] = fs2h16(dp->e2di_nlink);
415 inp = getinoinfo(fs2h32(dirp->e2d_ino));
420 fs2h32(dirp->e2d_ino),
421 fs2h32(dirp->e2d_ino));
438 dirp->e2d_type !=
439 inot2ext2dt(typemap[fs2h32(dirp->e2d_ino)])) {
440 dirp->e2d_type =
441 inot2ext2dt(typemap[fs2h32(dirp->e2d_ino)]);
443 fs2h32(dirp->e2d_ino),
448 lncntp[fs2h32(dirp->e2d_ino)]--;
453 statemap[fs2h32(dirp->e2d_ino)], fs2h32(dirp->e2d_ino));
458 dirp->e2d_ino = 0;