aboutsummaryrefslogtreecommitdiff
path: root/e2fsprogs/ext2fs/dir_iterate.c
diff options
context:
space:
mode:
Diffstat (limited to 'e2fsprogs/ext2fs/dir_iterate.c')
-rw-r--r--e2fsprogs/ext2fs/dir_iterate.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/e2fsprogs/ext2fs/dir_iterate.c b/e2fsprogs/ext2fs/dir_iterate.c
index 003c0a3bd..df820feaa 100644
--- a/e2fsprogs/ext2fs/dir_iterate.c
+++ b/e2fsprogs/ext2fs/dir_iterate.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * dir_iterate.c --- ext2fs directory iteration operations 2 * dir_iterate.c --- ext2fs directory iteration operations
3 * 3 *
4 * Copyright (C) 1993, 1994, 1994, 1995, 1996, 1997 Theodore Ts'o. 4 * Copyright (C) 1993, 1994, 1994, 1995, 1996, 1997 Theodore Ts'o.
5 * 5 *
6 * %Begin-Header% 6 * %Begin-Header%
@@ -32,7 +32,7 @@
32static int ext2fs_validate_entry(char *buf, int offset, int final_offset) 32static int ext2fs_validate_entry(char *buf, int offset, int final_offset)
33{ 33{
34 struct ext2_dir_entry *dirent; 34 struct ext2_dir_entry *dirent;
35 35
36 while (offset < final_offset) { 36 while (offset < final_offset) {
37 dirent = (struct ext2_dir_entry *)(buf + offset); 37 dirent = (struct ext2_dir_entry *)(buf + offset);
38 offset += dirent->rec_len; 38 offset += dirent->rec_len;
@@ -59,13 +59,13 @@ errcode_t ext2fs_dir_iterate2(ext2_filsys fs,
59{ 59{
60 struct dir_context ctx; 60 struct dir_context ctx;
61 errcode_t retval; 61 errcode_t retval;
62 62
63 EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS); 63 EXT2_CHECK_MAGIC(fs, EXT2_ET_MAGIC_EXT2FS_FILSYS);
64 64
65 retval = ext2fs_check_directory(fs, dir); 65 retval = ext2fs_check_directory(fs, dir);
66 if (retval) 66 if (retval)
67 return retval; 67 return retval;
68 68
69 ctx.dir = dir; 69 ctx.dir = dir;
70 ctx.flags = flags; 70 ctx.flags = flags;
71 if (block_buf) 71 if (block_buf)
@@ -106,7 +106,7 @@ static int xlate_func(ext2_ino_t dir EXT2FS_ATTR((unused)),
106 return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private); 106 return (*xl->func)(dirent, offset, blocksize, buf, xl->real_private);
107} 107}
108 108
109extern errcode_t ext2fs_dir_iterate(ext2_filsys fs, 109extern errcode_t ext2fs_dir_iterate(ext2_filsys fs,
110 ext2_ino_t dir, 110 ext2_ino_t dir,
111 int flags, 111 int flags,
112 char *block_buf, 112 char *block_buf,
@@ -118,7 +118,7 @@ extern errcode_t ext2fs_dir_iterate(ext2_filsys fs,
118 void *priv_data) 118 void *priv_data)
119{ 119{
120 struct xlate xl; 120 struct xlate xl;
121 121
122 xl.real_private = priv_data; 122 xl.real_private = priv_data;
123 xl.func = func; 123 xl.func = func;
124 124
@@ -151,7 +151,7 @@ int ext2fs_process_dir_block(ext2_filsys fs,
151 return 0; 151 return 0;
152 152
153 entry = blockcnt ? DIRENT_OTHER_FILE : DIRENT_DOT_FILE; 153 entry = blockcnt ? DIRENT_OTHER_FILE : DIRENT_DOT_FILE;
154 154
155 ctx->errcode = ext2fs_read_dir_block(fs, *blocknr, ctx->buf); 155 ctx->errcode = ext2fs_read_dir_block(fs, *blocknr, ctx->buf);
156 if (ctx->errcode) 156 if (ctx->errcode)
157 return BLOCK_ABORT; 157 return BLOCK_ABORT;
@@ -177,18 +177,18 @@ int ext2fs_process_dir_block(ext2_filsys fs,
177 ctx->priv_data); 177 ctx->priv_data);
178 if (entry < DIRENT_OTHER_FILE) 178 if (entry < DIRENT_OTHER_FILE)
179 entry++; 179 entry++;
180 180
181 if (ret & DIRENT_CHANGED) 181 if (ret & DIRENT_CHANGED)
182 changed++; 182 changed++;
183 if (ret & DIRENT_ABORT) { 183 if (ret & DIRENT_ABORT) {
184 do_abort++; 184 do_abort++;
185 break; 185 break;
186 } 186 }
187next: 187next:
188 if (next_real_entry == offset) 188 if (next_real_entry == offset)
189 next_real_entry += dirent->rec_len; 189 next_real_entry += dirent->rec_len;
190 190
191 if (ctx->flags & DIRENT_FLAG_INCLUDE_REMOVED) { 191 if (ctx->flags & DIRENT_FLAG_INCLUDE_REMOVED) {
192 size = ((dirent->name_len & 0xFF) + 11) & ~3; 192 size = ((dirent->name_len & 0xFF) + 11) & ~3;
193 193
194 if (dirent->rec_len != size) { 194 if (dirent->rec_len != size) {