Whamcloud - gitweb
e2fsck: add support for dirdata feature
authorAndreas Dilger <andreas.dilger@intel.com>
Thu, 17 May 2018 03:43:16 +0000 (13:43 +1000)
committerAndreas Dilger <adilger@whamcloud.com>
Thu, 15 Dec 2022 18:49:58 +0000 (11:49 -0700)
Add support for the INCOMPAT_DIRDATA feature, which allows
storing extra data in the directory entry beyond the name.
This allows the Lustre File IDentifier to be accessed in
an efficient manner, and would be useful for expanding a
filesystem to allow more than 2^32 inodes in the future.

While adding the new file entry in directory block, link_proc()
calculates minimum record length of the existing directory entry
without considering the dirent data size and which leads to
corruption. Changed the code to use EXT2_DIR_REC_LEN() which will
return correct record length including dirent data size.

Lustre-bug-id: https://jira.hpdd.intel.com/browse/LU-4677
Signed-off-by: Pravin Shelar <pravin@clusterfs.com>
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Signed-off-by: Artem Blagodarenko <artem.blagodarenko@gmail.com>
31 files changed:
debugfs/debugfs.8.in
debugfs/htree.c
debugfs/ls.c
debugfs/ncheck.c
e2fsck/message.c
e2fsck/pass1.c
e2fsck/pass2.c
e2fsck/pass3.c
e2fsck/problem.c
e2fsck/problem.h
e2fsck/rehash.c
e2fsck/unix.c
lib/ext2fs/dirblock.c
lib/ext2fs/ext2_fs.h
lib/ext2fs/ext2fs.h
lib/ext2fs/inline_data.c
lib/ext2fs/lfsck.h [new file with mode: 0644]
lib/ext2fs/link.c
lib/ext2fs/newdir.c
misc/mke2fs.c
misc/tune2fs.c
tests/f_dir_optimize/expect.1 [new file with mode: 0644]
tests/f_dir_optimize/expect.2 [new file with mode: 0644]
tests/f_dir_optimize/image.gz [new file with mode: 0644]
tests/f_dir_optimize/name [new file with mode: 0644]
tests/f_dir_optimize/script [new file with mode: 0644]
tests/f_dirdata_optimize/expect.1 [new file with mode: 0644]
tests/f_dirdata_optimize/expect.2 [new file with mode: 0644]
tests/f_dirdata_optimize/image.gz [new file with mode: 0644]
tests/f_dirdata_optimize/name [new file with mode: 0644]
tests/f_dirdata_optimize/script [new file with mode: 0644]

index aa6128a..6cd1d84 100644 (file)
@@ -549,7 +549,7 @@ option causes logdump to display old (checkpointed) journal entries.
 This can be used to try to track down journal problems even after the
 journal has been replayed.
 .TP
-.BI ls " [-l] [-c] [-d] [-p] [-r] filespec"
+.BI ls " [-l] [-c] [-d] [-p] [-r] [-D] filespec"
 Print a listing of the files in the directory
 .IR filespec .
 The
@@ -569,6 +569,11 @@ non-printing characters at the end of filenames.
 The
 .I \-r
 flag will force the printing of the filename, even if it is encrypted.
+The
+.I \-D
+flag will print the extra data found inside each entry when the
+.I \-l
+flag is used.
 .TP
 .BI list_deleted_inodes " [limit]"
 List deleted inodes, optionally limited to those deleted within
index a9f9211..1d94841 100644 (file)
@@ -298,7 +298,7 @@ void do_htree_dump(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
                goto errout;
        }
 
-       rootnode = (struct ext2_dx_root_info *) (buf + 24);
+       rootnode = get_ext2_dx_root_info(current_fs, buf);
 
        fprintf(pager, "Root node dump:\n");
        fprintf(pager, "\t Reserved zero: %u\n", rootnode->reserved_zero);
index 525f084..9b3a7c1 100644 (file)
@@ -24,6 +24,7 @@ extern char *optarg;
 #endif
 
 #include "debugfs.h"
+#include "ext2fs/lfsck.h"
 
 /*
  * list directory
@@ -32,6 +33,7 @@ extern char *optarg;
 #define LONG_OPT       0x0001
 #define PARSE_OPT      0x0002
 #define RAW_OPT                0x0004
+#define DIRDATA_OPT    0x0008
 #define ENCRYPT_OPT    0x8000
 
 struct list_dir_struct {
@@ -44,6 +46,41 @@ struct list_dir_struct {
 static const char *monstr[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
                                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
 
+static void list_dirdata(struct list_dir_struct *ls,
+                        struct ext2_dir_entry *dirent)
+{
+       unsigned char   *data;
+       int             dlen;
+       __u8            dirdata_mask;
+       __u8            file_type = dirent->name_len >> 8;
+
+       data = (unsigned char *)dirent->name +
+               (dirent->name_len & EXT2_NAME_LEN) + 1;
+
+       for (dirdata_mask = EXT2_FT_MASK + 1;
+            dirdata_mask != 0; dirdata_mask <<= 1) {
+               if ((dirdata_mask & file_type) == 0)
+                       continue;
+
+               dlen = data[0];
+
+               if (dirdata_mask == EXT2_DIRENT_LUFID) {
+                       struct lu_fid *fid = (struct lu_fid *)(data + 1);
+
+                       fid_be_to_cpu(fid, fid);
+                       fprintf(ls->f, "fid:"DFID, PFID(fid));
+               } else {
+                       int i;
+
+                       for (i = 1; i < dlen; i++)
+                               fprintf(ls->f, "%02x", data[i]);
+               }
+
+               fprintf(ls->f, " ");
+               data += dlen;
+       }
+}
+
 static int print_filename(FILE *f, struct ext2_dir_entry *dirent, int options)
 {
        unsigned char   ch;
@@ -147,6 +184,8 @@ static int list_dir_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
                        fprintf(ls->f, "%5llu",
                                (unsigned long long) EXT2_I_SIZE(&inode));
                fprintf(ls->f, " %s ", datestr);
+               if ((ls->options & DIRDATA_OPT) != 0)
+                       list_dirdata(ls, dirent);
                print_filename(ls->f, dirent, options);
                fputc('\n', ls->f);
        } else {
@@ -195,7 +234,7 @@ void do_list_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
                return;
 
        reset_getopt();
-       while ((c = getopt (argc, argv, "cdlpr")) != EOF) {
+       while ((c = getopt(argc, argv, "cdDlpr")) != EOF) {
                switch (c) {
                case 'c':
                        flags |= DIRENT_FLAG_INCLUDE_CSUM;
@@ -203,6 +242,9 @@ void do_list_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
                case 'l':
                        ls.options |= LONG_OPT;
                        break;
+               case 'D':
+                       ls.options |= DIRDATA_OPT;
+                       break;
                case 'd':
                        flags |= DIRENT_FLAG_INCLUDE_REMOVED;
                        break;
@@ -219,7 +261,7 @@ void do_list_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
 
        if (argc > optind+1) {
        print_usage:
-               com_err(0, 0, "Usage: ls [-c] [-d] [-l] [-p] [-r] file");
+               com_err(0, 0, "Usage: ls [-c] [-d] [-l] [-p] [-r] [-D] file");
                return;
        }
 
index 963b3a1..ec2f895 100644 (file)
@@ -51,6 +51,9 @@ static int ncheck_proc(struct ext2_dir_entry *dirent,
        iw->position++;
        if (iw->position <= 2)
                return 0;
+       if (current_fs->super->s_feature_incompat &
+           EXT4_FEATURE_INCOMPAT_DIRDATA)
+               filetype &= EXT2_FT_MASK;
        for (i=0; i < iw->num_inodes; i++) {
                if (iw->iarray[i] == dirent->inode) {
                        if (!iw->parent && !iw->get_pathname_failed) {
index ba38038..65e6886 100644 (file)
@@ -99,6 +99,7 @@
 
 #include "e2fsck.h"
 #include "problem.h"
+#include "ext2fs/lfsck.h"
 
 #ifdef __GNUC__
 #define _INLINE_ __inline__
@@ -346,6 +347,33 @@ static _INLINE_ void expand_inode_expression(FILE *f, ext2_filsys fs, char ch,
        }
 }
 
+const struct lu_fid *get_dirent_fid(struct ext2_dir_entry *dirent)
+{
+       unsigned char *data = (unsigned char *)dirent->name +
+                             (dirent->name_len & EXT2_NAME_LEN) + 1;
+       __u8 file_type = dirent->name_len >> 8;
+       struct lu_fid *fid = NULL;
+       __u8 dirdata_mask;
+
+       for (dirdata_mask = EXT2_FT_MASK + 1;
+            dirdata_mask != 0; dirdata_mask <<= 1) {
+               int dlen;
+
+               if ((dirdata_mask & file_type) == 0)
+                       continue;
+
+               dlen = data[0];
+               if (dirdata_mask == EXT2_DIRENT_LUFID) {
+                       fid = (struct lu_fid *)(data + 1);
+                       fid_be_to_cpu(fid, fid);
+                       break;
+               }
+               data += dlen;
+       }
+
+       return fid;
+}
+
 /*
  * This function expands '%dX' expressions
  */
@@ -361,9 +389,17 @@ static _INLINE_ void expand_dirent_expression(FILE *f, ext2_filsys fs, char ch,
        dirent = ctx->dirent;
 
        switch (ch) {
-       case 'i':
+       case 'i': {
+               const struct lu_fid *fid;
+
                fprintf(f, "%u", dirent->inode);
+
+               fid = get_dirent_fid(dirent);
+               if (fid != NULL)
+                       fprintf(f, " fid="DFID, PFID(fid));
+
                break;
+       }
        case 'n':
                len = ext2fs_dirent_name_len(dirent);
                if ((ext2fs_get_rec_len(fs, dirent, &rec_len) == 0) &&
index a89d3d8..1e54933 100644 (file)
@@ -769,7 +769,7 @@ static void check_is_really_dir(e2fsck_t ctx, struct problem_context *pctx,
                 */
                memcpy(&dotdot, inode->i_block, sizeof(dotdot));
                memcpy(&de, ((char *)inode->i_block) + EXT4_INLINE_DATA_DOTDOT_SIZE,
-                      EXT2_DIR_REC_LEN(0));
+                      EXT2_DIR_NAME_LEN(0));
                dotdot = ext2fs_le32_to_cpu(dotdot);
                de.inode = ext2fs_le32_to_cpu(de.inode);
                de.rec_len = ext2fs_le16_to_cpu(de.rec_len);
@@ -4370,7 +4370,7 @@ static int handle_htree(e2fsck_t ctx, struct problem_context *pctx,
        }
 
        /* XXX should check that beginning matches a directory */
-       root = (struct ext2_dx_root_info *) (block_buf + 24);
+       root = get_ext2_dx_root_info(fs, block_buf);
 
        if ((root->reserved_zero || root->info_length < 8) &&
            fix_problem(ctx, PR_1_HTREE_BADROOT, pctx))
index 0714d7a..055e3fe 100644 (file)
@@ -395,13 +395,88 @@ static EXT2_QSORT_TYPE special_dir_block_cmp(const void *a, const void *b)
        return (int) (db_a->blockcnt - db_b->blockcnt);
 }
 
+void ext2_fix_dirent_dirdata(struct ext2_dir_entry *de)
+{
+       __u16 file_type = de->name_len & (EXT2_FT_MASK << 8);
+       __u8 de_flags = (de->name_len >> 8) & ~EXT2_FT_MASK;
+       __u8 name_len = de->name_len & EXT2_NAME_LEN;
+       __u8 new_flag = 0;
+       int i;
+
+       for (i = 0; i < 4; i++) {
+               __u8 flags = new_flag | (1 << i) << 4;
+
+               /* new_flag is accumulating flags that are set in de_flags
+                * and still fit inside rec_len. ext2_get_dirent_dirdata_size()
+                * returns the size of all the dirdata entries in flags, and
+                * chops off any that are beyond rec_len.
+                */
+               if ((de_flags & flags) == flags) {
+                       int dirdatalen = ext2_get_dirdata_field_size(de,
+                                                                     flags);
+                       int rlen = EXT2_DIR_NAME_LEN(name_len + dirdatalen);
+
+                       if (rlen > de->rec_len)
+                               break;
+
+                       new_flag |= flags;
+               }
+       }
+
+       de->name_len = name_len | file_type | (new_flag << 8);
+}
+
+/*
+ * check for dirent data in ext3 dirent.
+ * return 0 if dirent data is ok.
+ * return 1 if dirent data does not exist.
+ * return 2 if dirent was modified due to error.
+ */
+int e2fsck_check_dirent_data(e2fsck_t ctx, struct ext2_dir_entry *de,
+                            unsigned int offset, struct problem_context *pctx)
+{
+       if (!(ctx->fs->super->s_feature_incompat &
+                       EXT4_FEATURE_INCOMPAT_DIRDATA)) {
+               if ((de->name_len >> 8) & ~EXT2_FT_MASK) {
+                       /* clear dirent extra data flags. */
+                       if (fix_problem(ctx, PR_2_CLEAR_DIRDATA, pctx)) {
+                               de->name_len &= (EXT2_FT_MASK << 8) |
+                                               EXT2_NAME_LEN;
+                               return 2;
+                       }
+               }
+               return 1;
+       }
+       if ((de->name_len >> 8) & ~EXT2_FT_MASK) {
+               if (de->rec_len >= EXT2_DIR_REC_LEN(de) ||
+                   de->rec_len + offset == EXT2_BLOCK_SIZE(ctx->fs->super)) {
+                       if (ext2_get_dirdata_field_size(de,
+                                                        EXT2_DIRENT_LUFID) %
+                           EXT2_DIRENT_LUFID_SIZE == 1 /*size*/ + 1 /*NULL*/)
+                               return 0;
+               }
+               /* just clear dirent data flags for now, we should fix FID data
+                * in lustre specific pass.
+                */
+               if (fix_problem(ctx, PR_2_CLEAR_DIRDATA, pctx)) {
+                       ext2_fix_dirent_dirdata(de);
+                       if (ext2_get_dirdata_field_size(de,
+                                                        EXT2_DIRENT_LUFID) !=
+                           EXT2_DIRENT_LUFID_SIZE)
+                               de->name_len &= ~(EXT2_DIRENT_LUFID << 8);
+
+                       return 2;
+               }
+       }
+       return 1;
+}
 
 /*
  * Make sure the first entry in the directory is '.', and that the
  * directory entry is sane.
  */
 static int check_dot(e2fsck_t ctx,
-                    struct ext2_dir_entry *dirent,
+                    struct ext2_dir_entry *dirent, unsigned int offset,
                     ext2_ino_t ino, struct problem_context *pctx)
 {
        struct ext2_dir_entry *nextdir;
@@ -410,6 +485,7 @@ static int check_dot(e2fsck_t ctx,
        int             created = 0;
        problem_t       problem = 0;
        int             ftype = EXT2_FT_DIR;
+       int             dir_data_error;
 
        if (!dirent->inode)
                problem = PR_2_MISSING_DOT;
@@ -419,12 +495,14 @@ static int check_dot(e2fsck_t ctx,
        else if (dirent->name[1] != '\0')
                problem = PR_2_DOT_NULL_TERM;
 
+       dir_data_error = e2fsck_check_dirent_data(ctx, dirent, offset, pctx);
+
        (void) ext2fs_get_rec_len(ctx->fs, dirent, &rec_len);
        if (problem) {
                if (!ext2fs_has_feature_filetype(ctx->fs->super))
                        ftype = EXT2_FT_UNKNOWN;
                if (fix_problem(ctx, problem, pctx)) {
-                       if (rec_len < 12)
+                       if (rec_len < 12 && dir_data_error)
                                rec_len = dirent->rec_len = 12;
                        dirent->inode = ino;
                        ext2fs_dirent_set_name_len(dirent, 1);
@@ -443,7 +521,7 @@ static int check_dot(e2fsck_t ctx,
        }
        if (rec_len > 12) {
                new_len = rec_len - 12;
-               if (new_len > 12) {
+               if (new_len > 12 && dir_data_error) {
                        if (created ||
                            fix_problem(ctx, PR_2_SPLIT_DOT, pctx)) {
                                nextdir = (struct ext2_dir_entry *)
@@ -480,12 +558,13 @@ static int check_dot(e2fsck_t ctx,
  * here; this gets done in pass 3.
  */
 static int check_dotdot(e2fsck_t ctx,
-                       struct ext2_dir_entry *dirent,
+                       struct ext2_dir_entry *dirent, unsigned int offset,
                        ext2_ino_t ino, struct problem_context *pctx)
 {
        problem_t       problem = 0;
        unsigned int    rec_len;
        int             ftype = EXT2_FT_DIR;
+       int             dir_data_error;
 
        if (!dirent->inode)
                problem = PR_2_MISSING_DOT_DOT;
@@ -496,12 +575,14 @@ static int check_dotdot(e2fsck_t ctx,
        else if (dirent->name[2] != '\0')
                problem = PR_2_DOT_DOT_NULL_TERM;
 
+       dir_data_error = e2fsck_check_dirent_data(ctx, dirent, offset, pctx);
+
        (void) ext2fs_get_rec_len(ctx->fs, dirent, &rec_len);
        if (problem) {
                if (!ext2fs_has_feature_filetype(ctx->fs->super))
                        ftype = EXT2_FT_UNKNOWN;
                if (fix_problem(ctx, problem, pctx)) {
-                       if (rec_len < 12)
+                       if (rec_len < 12 && dir_data_error)
                                dirent->rec_len = 12;
                        /*
                         * Note: we don't have the parent inode just
@@ -598,6 +679,12 @@ static _INLINE_ int check_filetype(e2fsck_t ctx,
        int     should_be = EXT2_FT_UNKNOWN;
        __u16   badness = 0;
        struct ext2_inode       inode;
+       __u8    dirdata = 0;
+
+       if (ext2fs_has_feature_dirdata(ctx->fs->super)) {
+               dirdata = filetype & ~EXT2_FT_MASK;
+               filetype = filetype & EXT2_FT_MASK;
+       }
 
        if (!ext2fs_has_feature_filetype(ctx->fs->super)) {
                if (filetype == 0 ||
@@ -628,8 +715,7 @@ static _INLINE_ int check_filetype(e2fsck_t ctx,
        if (fix_problem(ctx, filetype ? PR_2_BAD_FILETYPE : PR_2_SET_FILETYPE,
                        pctx) == 0)
                return 0;
-
-       ext2fs_dirent_set_file_type(dirent, should_be);
+       ext2fs_dirent_set_file_type(dirent, should_be | dirdata);
        return 1;
 }
 
@@ -651,7 +737,7 @@ static void parse_int_node(ext2_filsys fs,
        int             csum_size = 0;
 
        if (db->blockcnt == 0) {
-               root = (struct ext2_dx_root_info *) (block_buf + 24);
+               root = get_ext2_dx_root_info(fs, block_buf);
 
 #ifdef DX_DEBUG
                printf("Root node dump:\n");
@@ -661,8 +747,8 @@ static void parse_int_node(ext2_filsys fs,
                printf("\t Indirect levels: %u\n", root->indirect_levels);
                printf("\t Flags: %x\n", root->unused_flags);
 #endif
-
-               ent = (struct ext2_dx_entry *) (block_buf + 24 + root->info_length);
+               ent = (struct ext2_dx_entry *)((char *)root +
+                                              root->info_length);
 
                if (failed_csum &&
                    (e2fsck_dir_will_be_rehashed(cd->ctx, cd->pctx.ino) ||
@@ -670,7 +756,7 @@ static void parse_int_node(ext2_filsys fs,
                                &cd->pctx)))
                        goto clear_and_exit;
        } else {
-               ent = (struct ext2_dx_entry *) (block_buf+8);
+               ent = (struct ext2_dx_entry *)(block_buf + 8);
 
                if (failed_csum &&
                    (e2fsck_dir_will_be_rehashed(cd->ctx, cd->pctx.ino) ||
@@ -678,8 +764,7 @@ static void parse_int_node(ext2_filsys fs,
                                &cd->pctx)))
                        goto clear_and_exit;
        }
-
-       limit = (struct ext2_dx_countlimit *) ent;
+       limit = (struct ext2_dx_countlimit *)ent;
 
 #ifdef DX_DEBUG
        printf("Number of entries (count): %d\n",
@@ -853,7 +938,6 @@ static void salvage_directory(ext2_filsys fs,
        }
 }
 
-#define NEXT_DIRENT(d) ((void *)((char *)(d) + (d)->rec_len))
 static errcode_t insert_dirent_tail(ext2_filsys fs, void *dirbuf)
 {
        struct ext2_dir_entry *d;
@@ -863,11 +947,11 @@ static errcode_t insert_dirent_tail(ext2_filsys fs, void *dirbuf)
        d = dirbuf;
        top = EXT2_DIRENT_TAIL(dirbuf, fs->blocksize);
 
-       while (d->rec_len && !(d->rec_len & 0x3) && NEXT_DIRENT(d) <= top)
-               d = NEXT_DIRENT(d);
+       while (d->rec_len && !(d->rec_len & 0x3) && EXT2_NEXT_DIRENT(d) <= top)
+               d = EXT2_NEXT_DIRENT(d);
 
        if (d != top) {
-               unsigned int min_size = EXT2_DIR_REC_LEN(
+               unsigned int min_size = EXT2_DIR_NAME_LEN(
                                ext2fs_dirent_name_len(dirbuf));
                if (min_size > (char *)top - (char *)d)
                        return EXT2_ET_DIR_NO_SPACE_FOR_CSUM;
@@ -882,7 +966,6 @@ static errcode_t insert_dirent_tail(ext2_filsys fs, void *dirbuf)
 
        return 0;
 }
-#undef NEXT_DIRENT
 
 static errcode_t fix_inline_dir_size(e2fsck_t ctx, ext2_ino_t ino,
                                     size_t *inline_data_size,
@@ -901,7 +984,7 @@ static errcode_t fix_inline_dir_size(e2fsck_t ctx, ext2_ino_t ino,
         */
        if (old_size > EXT4_MIN_INLINE_DATA_SIZE &&
            old_size < EXT4_MIN_INLINE_DATA_SIZE +
-                      EXT2_DIR_REC_LEN(1)) {
+                      EXT2_DIR_NAME_LEN(1)) {
                old_size = EXT4_MIN_INLINE_DATA_SIZE;
                new_size = old_size;
        } else
@@ -1188,7 +1271,7 @@ inline_read_fail:
        if (((inline_data_size & 3) ||
             (inline_data_size > EXT4_MIN_INLINE_DATA_SIZE &&
              inline_data_size < EXT4_MIN_INLINE_DATA_SIZE +
-                                EXT2_DIR_REC_LEN(1))) &&
+                                EXT2_DIR_NAME_LEN(1))) &&
            fix_problem(ctx, PR_2_BAD_INLINE_DIR_SIZE, &pctx)) {
                errcode_t err = fix_inline_dir_size(ctx, ino,
                                                    &inline_data_size, &pctx,
@@ -1238,7 +1321,7 @@ inline_read_fail:
                (void) ext2fs_get_rec_len(fs, dirent, &rec_len);
                limit = (struct ext2_dx_countlimit *) (buf+8);
                if (db->blockcnt == 0) {
-                       root = (struct ext2_dx_root_info *) (buf + 24);
+                       root = get_ext2_dx_root_info(fs, buf);
                        dx_db->type = DX_DIRBLOCK_ROOT;
                        dx_db->flags |= DX_FLAG_FIRST | DX_FLAG_LAST;
 
@@ -1399,7 +1482,7 @@ skip_checksum:
                                memset(&dot, 0, sizeof(dot));
                                dirent = &dot;
                                dirent->inode = ino;
-                               dirent->rec_len = EXT2_DIR_REC_LEN(1);
+                               dirent->rec_len = EXT2_DIR_NAME_LEN(1);
                                dirent->name_len = 1 | filetype;
                                dirent->name[0] = '.';
                        } else if (dot_state == 1) {
@@ -1407,7 +1490,7 @@ skip_checksum:
                                dirent = &dotdot;
                                dirent->inode =
                                        ((struct ext2_dir_entry *)buf)->inode;
-                               dirent->rec_len = EXT2_DIR_REC_LEN(2);
+                               dirent->rec_len = EXT2_DIR_NAME_LEN(2);
                                dirent->name_len = 2 | filetype;
                                dirent->name[0] = '.';
                                dirent->name[1] = '.';
@@ -1419,10 +1502,10 @@ skip_checksum:
                }
 
                if (dot_state == 0) {
-                       if (check_dot(ctx, dirent, ino, &cd->pctx))
+                       if (check_dot(ctx, dirent, offset, ino, &cd->pctx))
                                dir_modified++;
                } else if (dot_state == 1) {
-                       ret = check_dotdot(ctx, dirent, ino, &cd->pctx);
+                       ret = check_dotdot(ctx, dirent, offset, ino, &cd->pctx);
                        if (ret < 0)
                                goto abort_free_dict;
                        if (ret)
@@ -1438,6 +1521,10 @@ skip_checksum:
                if (!dirent->inode)
                        goto next;
 
+               ret = e2fsck_check_dirent_data(ctx, dirent, offset, &cd->pctx);
+               if (ret == 2)
+                       dir_modified++;
+
                /*
                 * Make sure the inode listed is a legal one.
                 */
index 8f9c614..17b7077 100644 (file)
@@ -709,6 +709,7 @@ static int fix_dotdot_proc(struct ext2_dir_entry *dirent,
        struct fix_dotdot_struct *fp = (struct fix_dotdot_struct *) priv_data;
        errcode_t       retval;
        struct problem_context pctx;
+       __u16 dirdata = 0;
 
        if (ext2fs_dirent_name_len(dirent) != 2)
                return 0;
@@ -728,11 +729,17 @@ static int fix_dotdot_proc(struct ext2_dir_entry *dirent,
                fix_problem(fp->ctx, PR_3_ADJUST_INODE, &pctx);
        }
        dirent->inode = fp->parent;
+
+       dirdata  = dirent->name_len & ((__u16)~EXT2_FT_MASK << 8);
+
        if (ext2fs_has_feature_filetype(fp->ctx->fs->super))
                ext2fs_dirent_set_file_type(dirent, EXT2_FT_DIR);
        else
                ext2fs_dirent_set_file_type(dirent, EXT2_FT_UNKNOWN);
 
+       if (ext2fs_has_feature_dirdata(fp->ctx->fs->super))
+               dirent->name_len |= dirdata;
+
        fp->done++;
        return DIRENT_ABORT | DIRENT_CHANGED;
 }
index 83a3703..a740be1 100644 (file)
@@ -1897,6 +1897,11 @@ static struct e2fsck_problem problem_table[] = {
          N_("@i %i is badly corrupt (badness value = %N).  "),
          PROMPT_CLEAR, PR_PREEN_OK },
 
+       /* Directory entry dirdata length set incorrectly */
+       { PR_2_CLEAR_DIRDATA,
+         N_("@E dirdata length set incorrectly.\n"),
+         PROMPT_CLEAR, PR_PREEN_OK },
+
        /* Pass 3 errors */
 
        /* Pass 3: Checking directory connectivity */
index 336f3fa..7ee3955 100644 (file)
@@ -1093,6 +1093,9 @@ struct problem_context {
 /* Inode is badly corrupt (badness value = ) */
 #define PR_2_INODE_TOOBAD              0x020055
 
+/* Entry dirdata length set incorrectly */
+#define PR_2_CLEAR_DIRDATA             0x020056
+
 /*
  * Pass 3 errors
  */
index 210cfdf..fe9a46f 100644 (file)
@@ -86,6 +86,8 @@ struct fill_dir_struct {
        int compress;
        ext2_ino_t parent;
        ext2_ino_t dir;
+       struct ext2_dir_entry *dot_de;
+       struct ext2_dir_entry *dotdot_de;
 };
 
 struct hash_entry {
@@ -187,11 +189,14 @@ static int fill_dir_block(ext2_filsys fs,
                        return BLOCK_ABORT;
                }
                if (!fd->compress && (name_len == 1) &&
-                   (dirent->name[0] == '.'))
+                   (dirent->name[0] == '.')) {
+                       fd->dot_de = dirent;
                        continue;
+               }
                if (!fd->compress && (name_len == 2) &&
                    (dirent->name[0] == '.') && (dirent->name[1] == '.')) {
                        fd->parent = dirent->inode;
+                       fd->dotdot_de = dirent;
                        continue;
                }
                if (fd->num_array >= fd->max_array) {
@@ -209,7 +214,7 @@ static int fill_dir_block(ext2_filsys fs,
                }
                ent = fd->harray + fd->num_array++;
                ent->dir = dirent;
-               fd->dir_size += ext2fs_dir_rec_len(name_len, extended);
+               fd->dir_size += ext2fs_dirdata_rec_len(dirent, extended);
                ent->ino = dirent->inode;
                if (extended) {
                        ent->hash = EXT2_DIRENT_HASH(dirent);
@@ -587,8 +592,7 @@ static errcode_t copy_dir_entries(e2fsck_t ctx,
                ent = fd->harray + i;
                if (ent->dir->inode == 0)
                        continue;
-               rec_len = ext2fs_dir_rec_len(ext2fs_dirent_name_len(ent->dir),
-                                            hash_in_entry);
+               rec_len = ext2fs_dirdata_rec_len(ent->dir, hash_in_entry);
                if (rec_len > left) {
                        if (left) {
                                left += prev_rec_len;
@@ -623,8 +627,7 @@ static errcode_t copy_dir_entries(e2fsck_t ctx,
                if (retval)
                        return retval;
                prev_rec_len = rec_len;
-               memcpy(dirent->name, ent->dir->name,
-                      ext2fs_dirent_name_len(dirent));
+               memcpy(dirent->name, ent->dir->name, rec_len);
                if (hash_in_entry) {
                        EXT2_DIRENT_HASHES(dirent)->hash = ext2fs_cpu_to_le32(ent->hash);
                        EXT2_DIRENT_HASHES(dirent)->minor_hash =
@@ -655,47 +658,52 @@ static errcode_t copy_dir_entries(e2fsck_t ctx,
 
 static struct ext2_dx_root_info *set_root_node(ext2_filsys fs, char *buf,
                                    ext2_ino_t ino, ext2_ino_t parent,
+                                   struct ext2_dir_entry *dot_de,
+                                   struct ext2_dir_entry *dotdot_de,
                                    struct ext2_inode *inode)
 {
-       struct ext2_dir_entry           *dir;
-       struct ext2_dx_root_info        *root;
+       struct ext2_dir_entry           *dirent;
+       struct ext2_dx_root_info        *root;
        struct ext2_dx_countlimit       *limits;
-       int                             filetype = 0;
        int                             csum_size = 0;
-
-       if (ext2fs_has_feature_filetype(fs->super))
-               filetype = EXT2_FT_DIR;
+       int                             offset;
+       int                             rec_len;
 
        memset(buf, 0, fs->blocksize);
-       dir = (struct ext2_dir_entry *) buf;
-       dir->inode = ino;
-       dir->name[0] = '.';
-       ext2fs_dirent_set_name_len(dir, 1);
-       ext2fs_dirent_set_file_type(dir, filetype);
-       dir->rec_len = 12;
-       dir = (struct ext2_dir_entry *) (buf + 12);
-       dir->inode = parent;
-       dir->name[0] = '.';
-       dir->name[1] = '.';
-       ext2fs_dirent_set_name_len(dir, 2);
-       ext2fs_dirent_set_file_type(dir, filetype);
-       dir->rec_len = fs->blocksize - 12;
-
-       root = (struct ext2_dx_root_info *) (buf+24);
+       dirent = (struct ext2_dir_entry *) buf;
+       dirent->inode = ino;
+
+       dirent->name_len = dot_de->name_len;
+       offset = rec_len = dirent->rec_len = dot_de->rec_len;
+       memcpy(dirent->name, dot_de->name, rec_len);
+
+       dirent = EXT2_NEXT_DIRENT(dirent);
+       /* set to jump over the index block */
+
+       dirent->inode = parent;
+
+       dirent->name_len = dotdot_de->name_len;
+       dirent->rec_len = fs->blocksize - rec_len;
+       rec_len = EXT2_DIR_REC_LEN(dotdot_de);
+       memcpy(dirent->name, dotdot_de->name, rec_len);
+       offset += rec_len;
+
+       root = (struct ext2_dx_root_info *)(buf + offset);
        root->reserved_zero = 0;
        if (ext4_hash_in_dirent(inode))
                root->hash_version = EXT2_HASH_SIPHASH;
        else
                root->hash_version = fs->super->s_def_hash_version;
-       root->info_length = 8;
+       root->info_length = sizeof(*root);
        root->indirect_levels = 0;
        root->unused_flags = 0;
+       offset += root->info_length;
 
        if (ext2fs_has_feature_metadata_csum(fs->super))
                csum_size = sizeof(struct ext2_dx_tail);
 
-       limits = (struct ext2_dx_countlimit *) (buf+32);
-       limits->limit = (fs->blocksize - (32 + csum_size)) /
+       limits = (struct ext2_dx_countlimit *) (buf + offset);
+       limits->limit = (fs->blocksize - (offset + csum_size)) /
                        sizeof(struct ext2_dx_entry);
        limits->count = 0;
 
@@ -773,6 +781,8 @@ static errcode_t calculate_tree(ext2_filsys fs,
                                struct out_dir *outdir,
                                ext2_ino_t ino,
                                ext2_ino_t parent,
+                               struct ext2_dir_entry *dot_de,
+                               struct ext2_dir_entry *dotdot_de,
                                struct ext2_inode *inode)
 {
        struct ext2_dx_root_info        *root_info;
@@ -782,7 +792,9 @@ static errcode_t calculate_tree(ext2_filsys fs,
        int                             i, c1, c2, c3, nblks;
        int                             limit_offset, int_offset, root_offset;
 
-       root_info = set_root_node(fs, outdir->buf, ino, parent, inode);
+       root_info = set_root_node(fs, outdir->buf, ino, parent, dot_de,
+                                 dotdot_de, inode);
+
        root_offset = limit_offset = ((char *) root_info - outdir->buf) +
                root_info->info_length;
        root_limit = (struct ext2_dx_countlimit *) (outdir->buf + limit_offset);
@@ -1085,11 +1097,10 @@ resort:
        if (retval)
                goto errout;
 
-       free(dir_buf); dir_buf = 0;
-
        if (!fd.compress) {
                /* Calculate the interior nodes */
-               retval = calculate_tree(fs, &outdir, ino, fd.parent, fd.inode);
+               retval = calculate_tree(fs, &outdir, ino, fd.parent,
+                                       fd.dot_de, fd.dotdot_de, fd.inode);
                if (retval)
                        goto errout;
        }
index 5f9dbcb..ea3cd0c 100644 (file)
@@ -1985,6 +1985,14 @@ print_unsupp_features:
                goto get_newer;
        }
 
+       if (ext2fs_has_feature_dirdata(sb) &&
+           ext2fs_has_feature_casefold(sb)) {
+               com_err(ctx->program_name, 0,
+                       _("%s has both casefold and dirdata, aborting fsck"),
+                       ctx->filesystem_name);
+               fatal_error(ctx, 0);
+       }
+
        if (ext2fs_has_feature_casefold(sb) && !fs->encoding) {
                log_err(ctx, _("%s has unsupported encoding: %0x\n"),
                        ctx->filesystem_name, sb->s_encoding);
index 54b2777..3563138 100644 (file)
@@ -50,6 +50,39 @@ errcode_t ext2fs_read_dir_block3(ext2_filsys fs, blk64_t block,
        return ext2fs_read_dir_block4(fs, block, buf, flags, 0);
 }
 
+/*
+ * Compute the dirdata length. This includes only optional extensions.
+ * Each extension has a bit set in the high 4 bits of
+ * de->file_type, and the extension length is the first byte in each entry.
+ */
+int ext2_get_dirdata_field_size(struct ext2_dir_entry *de,
+                                char dirdata_flags)
+{
+       char *lenp = de->name + (de->name_len & EXT2_NAME_LEN) + 1 /* NUL */;
+       __u8 extra_data_flags = (de->name_len & ~(EXT2_FT_MASK << 8)) >> 12;
+       int dlen = 0;
+
+       dirdata_flags >>= 4;
+       while ((extra_data_flags & dirdata_flags) != 0) {
+               if (extra_data_flags & 1) {
+                       if (dirdata_flags & 1)
+                               dlen += *lenp;
+
+                       lenp += *lenp;
+               }
+               extra_data_flags >>= 1;
+               dirdata_flags >>= 1;
+       }
+
+       /* add NUL terminator byte to dirdata length */
+       return dlen + (dlen != 0);
+}
+
+int ext2_get_dirdata_size(struct ext2_dir_entry *de)
+{
+       return ext2_get_dirdata_field_size(de, ~EXT2_FT_MASK);
+}
+
 errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block,
                                 void *buf, int flags EXT2FS_ATTR((unused)))
 {
index a849c70..415c40f 100644 (file)
@@ -975,7 +975,8 @@ EXT4_FEATURE_INCOMPAT_FUNCS(casefold,               4, CASEFOLD)
 #define EXT2_FEATURE_INCOMPAT_SUPP    (EXT2_FEATURE_INCOMPAT_FILETYPE| \
                                       EXT4_FEATURE_INCOMPAT_MMP| \
                                       EXT4_FEATURE_INCOMPAT_LARGEDIR| \
-                                      EXT4_FEATURE_INCOMPAT_EA_INODE)
+                                      EXT4_FEATURE_INCOMPAT_EA_INODE| \
+                                      EXT4_FEATURE_INCOMPAT_DIRDATA)
 #define EXT2_FEATURE_RO_COMPAT_SUPP    (EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER| \
                                         EXT2_FEATURE_RO_COMPAT_LARGE_FILE| \
                                         EXT4_FEATURE_RO_COMPAT_DIR_NLINK| \
@@ -1090,6 +1091,7 @@ struct ext2_dir_entry_tail {
 #define EXT2_FT_SYMLINK                7
 
 #define EXT2_FT_MAX            8
+#define EXT2_FT_MASK           0x0f
 
 /*
  * Annoyingly, e2fsprogs always swab16s ext2_dir_entry.name_len, so we
@@ -1099,6 +1101,9 @@ struct ext2_dir_entry_tail {
  */
 #define EXT2_DIR_NAME_LEN_CSUM 0xDE00
 
+int ext2_get_dirdata_field_size(struct ext2_dir_entry *de, char dirdata_flags);
+int ext2_get_dirdata_size(struct ext2_dir_entry *de);
+
 /*
  * EXT2_DIR_PAD defines the directory entries boundaries
  *
@@ -1108,7 +1113,13 @@ struct ext2_dir_entry_tail {
 #define EXT2_DIR_ENTRY_HASH_LEN                8
 #define EXT2_DIR_PAD                   4
 #define EXT2_DIR_ROUND                 (EXT2_DIR_PAD - 1)
-#define EXT2_DIR_REC_LEN(name_len) ext2fs_dir_rec_len(name_len, 0)
+#define EXT2_DIR_NAME_LEN(name_len)    (((name_len) + \
+                                         EXT2_DIR_ENTRY_HEADER_LEN + \
+                                         EXT2_DIR_ROUND) & \
+                                        ~EXT2_DIR_ROUND)
+#define EXT2_DIR_REC_LEN(de)   (EXT2_DIR_NAME_LEN(((de)->name_len &         \
+                                                    EXT2_NAME_LEN) +         \
+                                                   ext2_get_dirdata_size(de)))
 
 static inline unsigned int ext2fs_dir_rec_len(__u8 name_len,
                                                int extended)
@@ -1121,6 +1132,20 @@ static inline unsigned int ext2fs_dir_rec_len(__u8 name_len,
        return rec_len;
 }
 
+static inline unsigned int ext2fs_dirdata_rec_len(struct ext2_dir_entry *de,
+                                               int extended)
+{
+       int rec_len = EXT2_DIR_REC_LEN(de);
+
+       if (extended)
+               rec_len += EXT2_DIR_ENTRY_HASH_LEN;
+       return rec_len;
+}
+
+/* lu_fid size and NUL char */
+#define EXT2_DIRENT_LUFID_SIZE         16
+#define EXT2_DIRENT_LUFID              0x10
+
 /*
  * Constants for ext4's extended time encoding
  */
@@ -1193,4 +1218,6 @@ struct mmp_struct {
 
 #define EXT4_ENC_STRICT_MODE_FL                        (1 << 0) /* Reject invalid sequences */
 
+#define EXT2_NEXT_DIRENT(d)    ((void *)((char *)(d) + (d)->rec_len))
+
 #endif /* _LINUX_EXT2_FS_H */
index 714bed5..af09a65 100644 (file)
@@ -655,6 +655,7 @@ typedef struct ext2_icount *ext2_icount_t;
                                         EXT3_FEATURE_INCOMPAT_EXTENTS|\
                                         EXT4_FEATURE_INCOMPAT_FLEX_BG|\
                                         EXT4_FEATURE_INCOMPAT_EA_INODE|\
+                                        EXT4_FEATURE_INCOMPAT_DIRDATA|\
                                         EXT4_LIB_INCOMPAT_MMP|\
                                         EXT4_FEATURE_INCOMPAT_64BIT|\
                                         EXT4_FEATURE_INCOMPAT_INLINE_DATA|\
@@ -2150,6 +2151,25 @@ _INLINE_ int ext2fs_htree_intnode_maxrecs(ext2_filsys fs, int blocks)
                                                sizeof(struct ext2_dx_entry));
 }
 
+_INLINE_ struct ext2_dx_root_info *get_ext2_dx_root_info(ext2_filsys fs,
+                                                        char *buf)
+{
+       struct ext2_dir_entry *de = (struct ext2_dir_entry *)buf;
+
+       if (!(fs->super->s_feature_incompat & EXT4_FEATURE_INCOMPAT_DIRDATA))
+               return (struct ext2_dx_root_info *)(buf +
+                                                   EXT2_DIR_NAME_LEN(1) +
+                                                   EXT2_DIR_NAME_LEN(2));
+
+       /* get dotdot first */
+       de = (struct ext2_dir_entry *)((char *)de + de->rec_len);
+
+       /* dx root info is after dotdot entry */
+       de = (struct ext2_dir_entry *)((char *)de + EXT2_DIR_REC_LEN(de));
+
+       return (struct ext2_dx_root_info *)de;
+}
+
 /*
  * This is an efficient, overflow safe way of calculating ceil((1.0 * a) / b)
  */
@@ -2169,7 +2189,7 @@ _INLINE_ __u64 ext2fs_div64_ceil(__u64 a, __u64 b)
 
 _INLINE_ int ext2fs_dirent_name_len(const struct ext2_dir_entry *entry)
 {
-       return entry->name_len & 0xff;
+       return entry->name_len & EXT2_NAME_LEN;
 }
 
 _INLINE_ void ext2fs_dirent_set_name_len(struct ext2_dir_entry *entry, int len)
index b62fb67..cd3e5bc 100644 (file)
@@ -149,7 +149,7 @@ int ext2fs_inline_data_dir_iterate(ext2_filsys fs, ext2_ino_t ino,
        /* we first check '.' and '..' dir */
        dirent.inode = ino;
        dirent.name_len = 1;
-       ext2fs_set_rec_len(fs, EXT2_DIR_REC_LEN(2), &dirent);
+       ext2fs_set_rec_len(fs, EXT2_DIR_NAME_LEN(2), &dirent);
        dirent.name[0] = '.';
        dirent.name[1] = '\0';
        ctx->buf = (char *)&dirent;
@@ -160,7 +160,7 @@ int ext2fs_inline_data_dir_iterate(ext2_filsys fs, ext2_ino_t ino,
 
        dirent.inode = ext2fs_le32_to_cpu(inode.i_block[0]);
        dirent.name_len = 2;
-       ext2fs_set_rec_len(fs, EXT2_DIR_REC_LEN(3), &dirent);
+       ext2fs_set_rec_len(fs, EXT2_DIR_NAME_LEN(3), &dirent);
        dirent.name[0] = '.';
        dirent.name[1] = '.';
        dirent.name[2] = '\0';
@@ -296,14 +296,14 @@ static errcode_t ext2fs_inline_data_convert_dir(ext2_filsys fs, ext2_ino_t ino,
        ext2fs_dirent_set_name_len(dir, 1);
        ext2fs_dirent_set_file_type(dir, filetype);
        dir->name[0] = '.';
-       rec_len = (fs->blocksize - csum_size) - EXT2_DIR_REC_LEN(1);
-       dir->rec_len = EXT2_DIR_REC_LEN(1);
+       rec_len = (fs->blocksize - csum_size) - EXT2_DIR_NAME_LEN(1);
+       dir->rec_len = EXT2_DIR_NAME_LEN(1);
 
        /*
         * Set up entry for '..'
         */
        dir = (struct ext2_dir_entry *) (bbuf + dir->rec_len);
-       dir->rec_len = EXT2_DIR_REC_LEN(2);
+       dir->rec_len = EXT2_DIR_NAME_LEN(2);
        dir->inode = ext2fs_le32_to_cpu(((__u32 *)ibuf)[0]);
        ext2fs_dirent_set_name_len(dir, 2);
        ext2fs_dirent_set_file_type(dir, filetype);
@@ -313,11 +313,11 @@ static errcode_t ext2fs_inline_data_convert_dir(ext2_filsys fs, ext2_ino_t ino,
        /*
         * Adjust the last rec_len
         */
-       offset = EXT2_DIR_REC_LEN(1) + EXT2_DIR_REC_LEN(2);
+       offset = EXT2_DIR_NAME_LEN(1) + EXT2_DIR_NAME_LEN(2);
        dir = (struct ext2_dir_entry *) (bbuf + offset);
        memcpy(bbuf + offset, ibuf + EXT4_INLINE_DATA_DOTDOT_SIZE,
               size - EXT4_INLINE_DATA_DOTDOT_SIZE);
-       size += EXT2_DIR_REC_LEN(1) + EXT2_DIR_REC_LEN(2) -
+       size += EXT2_DIR_NAME_LEN(1) + EXT2_DIR_NAME_LEN(2) -
                EXT4_INLINE_DATA_DOTDOT_SIZE;
 
        do {
diff --git a/lib/ext2fs/lfsck.h b/lib/ext2fs/lfsck.h
new file mode 100644 (file)
index 0000000..6a49042
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef LFSCK_H
+#define LFSCK_H
+
+/* This is unfortunately needed for older lustre_user.h to be usable */
+#define LASSERT(cond)          do { } while (0)
+
+#ifdef HAVE_LUSTRE_LUSTREAPI_H
+#include <lustre/lustreapi.h>
+#elif HAVE_LUSTRE_LIBLUSTREAPI_H
+#include <lustre/liblustreapi.h>
+#endif
+
+#ifndef DFID
+#define DFID "[%#llx:0x%x:0x%x]"
+#define PFID(fid) (unsigned long long)fid_seq(fid), fid_oid(fid), fid_ver(fid)
+struct lu_fid {
+       __u64   f_seq;
+       __u32   f_oid;
+       __u32   f_ver;
+};
+#endif /* !DFID */
+
+/* Unfortunately, neither the 1.8 or 2.x lustre_idl.h file is suitable
+ * for inclusion by userspace programs because of external dependencies.
+ * Define the minimum set of replacement functions here until that is fixed. */
+#ifndef HAVE_LUSTRE_LUSTRE_IDL_H
+#define fid_seq(fid) ((fid)->f_seq)
+#define fid_oid(fid) ((fid)->f_oid)
+#define fid_ver(fid) ((fid)->f_ver)
+
+static inline void fid_be_to_cpu(struct lu_fid *dst, struct lu_fid *src)
+{
+       dst->f_seq = ext2fs_be64_to_cpu(src->f_seq);
+       dst->f_oid = ext2fs_be32_to_cpu(src->f_oid);
+       dst->f_ver = ext2fs_be32_to_cpu(src->f_ver);
+}
+#endif
+
+#endif /* LFSCK_H */
index d69b1e3..60d06fb 100644 (file)
@@ -197,7 +197,7 @@ static int link_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
        if (ls->done)
                return DIRENT_ABORT;
 
-       rec_len = EXT2_DIR_REC_LEN(ls->namelen);
+       rec_len = EXT2_DIR_NAME_LEN(ls->namelen);
 
        ls->err = ext2fs_get_rec_len(ls->fs, dirent, &curr_rec_len);
        if (ls->err)
@@ -226,7 +226,7 @@ static int link_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
         * truncate it and return.
         */
        if (dirent->inode) {
-               min_rec_len = EXT2_DIR_REC_LEN(ext2fs_dirent_name_len(dirent));
+               min_rec_len = EXT2_DIR_REC_LEN(dirent);
                if (curr_rec_len < (min_rec_len + rec_len))
                        return ret;
                rec_len = curr_rec_len - min_rec_len;
@@ -254,7 +254,7 @@ static int link_proc(ext2_ino_t dir EXT2FS_ATTR((unused)),
        ext2fs_dirent_set_name_len(dirent, ls->namelen);
        strncpy(dirent->name, ls->name, ls->namelen);
        if (ext2fs_has_feature_filetype(ls->sb))
-               ext2fs_dirent_set_file_type(dirent, ls->flags & 0x7);
+               ext2fs_dirent_set_file_type(dirent, ls->flags & EXT2_FT_MASK);
 
        ls->done++;
        return DIRENT_ABORT|DIRENT_CHANGED;
@@ -330,8 +330,8 @@ static errcode_t dx_move_dirents(ext2_filsys fs, struct dx_hash_map *map,
                csum_size = sizeof(struct ext2_dir_entry_tail);
 
        for (i = 0; i < count; i++) {
-               de = (struct ext2_dir_entry *) ((char *)from + map[i].off);
-               rec_len = EXT2_DIR_REC_LEN(ext2fs_dirent_name_len(de));
+               de = from + map[i].off;
+               rec_len = EXT2_DIR_REC_LEN(de);
                memcpy(to, de, rec_len);
                retval = ext2fs_set_rec_len(fs, rec_len, to);
                if (retval)
index 7f47285..f168d66 100644 (file)
@@ -64,8 +64,8 @@ errcode_t ext2fs_new_dir_block(ext2_filsys fs, ext2_ino_t dir_ino,
                ext2fs_dirent_set_name_len(dir, 1);
                ext2fs_dirent_set_file_type(dir, filetype);
                dir->name[0] = '.';
-               rec_len = (fs->blocksize - csum_size) - EXT2_DIR_REC_LEN(1);
-               dir->rec_len = EXT2_DIR_REC_LEN(1);
+               rec_len = (fs->blocksize - csum_size) - EXT2_DIR_NAME_LEN(1);
+               dir->rec_len = EXT2_DIR_NAME_LEN(1);
 
                /*
                 * Set up entry for '..'
index 04b2fbc..9496f1a 100644 (file)
@@ -1165,6 +1165,7 @@ static __u32 ok_features[3] = {
                EXT4_FEATURE_INCOMPAT_FLEX_BG|
                EXT4_FEATURE_INCOMPAT_EA_INODE|
                EXT4_FEATURE_INCOMPAT_MMP |
+               EXT4_FEATURE_INCOMPAT_DIRDATA|
                EXT4_FEATURE_INCOMPAT_64BIT|
                EXT4_FEATURE_INCOMPAT_INLINE_DATA|
                EXT4_FEATURE_INCOMPAT_ENCRYPT |
@@ -3082,6 +3083,19 @@ int main (int argc, char *argv[])
                exit(1);
        }
 
+       if (ext2fs_has_feature_dirdata(fs->super)) {
+               if (ext2fs_has_feature_inline_data(fs->super)) {
+                       printf("%s", _("The dirdata feature can not enabled "
+                                      "with inline data feature.\n"));
+                       exit(1);
+               }
+               if (ext2fs_has_feature_casefold(fs->super)) {
+                       printf("%s", _("The dirdata feature can not enabled "
+                                      "with casefold feature.\n"));
+                       exit(1);
+               }
+       }
+
        /* Calculate journal blocks */
        if (!journal_device && ((journal_size) ||
            ext2fs_has_feature_journal(&fs_param)))
index bed3d95..7e588c9 100644 (file)
@@ -160,6 +160,7 @@ static __u32 ok_features[3] = {
                EXT4_FEATURE_INCOMPAT_FLEX_BG |
                EXT4_FEATURE_INCOMPAT_EA_INODE|
                EXT4_FEATURE_INCOMPAT_MMP |
+               EXT4_FEATURE_INCOMPAT_DIRDATA |
                EXT4_FEATURE_INCOMPAT_64BIT |
                EXT4_FEATURE_INCOMPAT_ENCRYPT |
                EXT4_FEATURE_INCOMPAT_CSUM_SEED |
@@ -189,6 +190,7 @@ static __u32 clear_ok_features[3] = {
        EXT2_FEATURE_INCOMPAT_FILETYPE |
                EXT4_FEATURE_INCOMPAT_FLEX_BG |
                EXT4_FEATURE_INCOMPAT_MMP |
+               EXT4_FEATURE_INCOMPAT_DIRDATA |
                EXT4_FEATURE_INCOMPAT_64BIT |
                EXT4_FEATURE_INCOMPAT_CSUM_SEED,
        /* R/O compat */
@@ -1480,6 +1482,11 @@ mmp_error:
        }
 
        if (FEATURE_ON(E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_CASEFOLD)) {
+               if (ext2fs_has_feature_dirdata(sb)) {
+                       fputs(_("Can not enable casefold feature on "
+                               "filesystem has dirdata.\n"), stderr);
+                       return 1;
+               }
                if (mount_flags & EXT2_MF_MOUNTED) {
                        fputs(_("The casefold feature may only be enabled when "
                                "the filesystem is unmounted.\n"), stderr);
@@ -1524,6 +1531,25 @@ mmp_error:
                }
        }
 
+       if (FEATURE_ON(E2P_FEATURE_INCOMPAT, EXT4_FEATURE_INCOMPAT_DIRDATA)) {
+               if (ext2fs_has_feature_inline_data(sb)) {
+                       fputs(_("Can not enable dirdata feature on "
+                               "filesystem has inline_data.\n"), stderr);
+                       return 1;
+               }
+               if (ext2fs_has_feature_casefold(sb)) {
+                       fputs(_("Can not enable dirdata feature on "
+                               "filesystem has casefold.\n"), stderr);
+                       return 1;
+               }
+               if (FEATURE_ON(E2P_FEATURE_INCOMPAT,
+                              EXT4_FEATURE_INCOMPAT_CASEFOLD)) {
+                       fputs(_("Can not enable dirdata feature with"
+                               "casefold feature.\n"), stderr);
+                       return 1;
+               }
+       }
+
        if (sb->s_rev_level == EXT2_GOOD_OLD_REV &&
            (sb->s_feature_compat || sb->s_feature_ro_compat ||
             sb->s_feature_incompat))
diff --git a/tests/f_dir_optimize/expect.1 b/tests/f_dir_optimize/expect.1
new file mode 100644 (file)
index 0000000..4457fa7
--- /dev/null
@@ -0,0 +1,511 @@
+
+     94   40755 (18)      0      0    4096 25-Aug-2012 06:09 fid:[0x5e:0xf6d09ca7:0x0] ..
+    105   40755 (18)      0      0   36864 25-Aug-2012 06:09 fid:[0x200000400:0x1:0x0] .
+    106  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2:0x0] file0
+    107  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3:0x0] file1
+    108  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4:0x0] file2
+    109  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5:0x0] file3
+    110  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6:0x0] file4
+    111  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7:0x0] file5
+    112  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8:0x0] file6
+    113  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9:0x0] file7
+    114  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa:0x0] file8
+    115  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb:0x0] file9
+    116  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc:0x0] file10
+    117  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd:0x0] file11
+    118  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe:0x0] file12
+    119  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf:0x0] file13
+    120  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10:0x0] file14
+    121  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11:0x0] file15
+    122  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12:0x0] file16
+    123  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13:0x0] file17
+    124  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14:0x0] file18
+    125  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15:0x0] file19
+    126  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16:0x0] file20
+    127  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17:0x0] file21
+    128  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18:0x0] file22
+    129  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19:0x0] file23
+    130  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a:0x0] file24
+    131  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b:0x0] file25
+    132  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c:0x0] file26
+    133  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d:0x0] file27
+    134  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e:0x0] file28
+    135  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f:0x0] file29
+    136  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x20:0x0] file30
+    137  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x21:0x0] file31
+    138  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x22:0x0] file32
+    139  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x23:0x0] file33
+    140  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x24:0x0] file34
+    141  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x25:0x0] file35
+    142  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x26:0x0] file36
+    143  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x27:0x0] file37
+    144  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x28:0x0] file38
+    145  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x29:0x0] file39
+    146  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2a:0x0] file40
+    147  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2b:0x0] file41
+    148  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2c:0x0] file42
+    149  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2d:0x0] file43
+    150  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2e:0x0] file44
+    151  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2f:0x0] file45
+    152  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x30:0x0] file46
+    153  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x31:0x0] file47
+    154  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x32:0x0] file48
+    155  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x33:0x0] file49
+    156  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x34:0x0] file50
+    157  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x35:0x0] file51
+    158  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x36:0x0] file52
+    159  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x37:0x0] file53
+    160  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x38:0x0] file54
+    161  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x39:0x0] file55
+    162  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3a:0x0] file56
+    163  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3b:0x0] file57
+    164  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3c:0x0] file58
+    165  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3d:0x0] file59
+    166  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3e:0x0] file60
+    167  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3f:0x0] file61
+    168  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x40:0x0] file62
+    169  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x41:0x0] file63
+    170  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x42:0x0] file64
+    171  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x43:0x0] file65
+    172  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x44:0x0] file66
+    173  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x45:0x0] file67
+    174  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x46:0x0] file68
+    175  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x47:0x0] file69
+    176  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x48:0x0] file70
+    177  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x49:0x0] file71
+    178  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4a:0x0] file72
+    179  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4b:0x0] file73
+    180  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4c:0x0] file74
+    181  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4d:0x0] file75
+    182  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4e:0x0] file76
+    183  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4f:0x0] file77
+    184  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x50:0x0] file78
+    185  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x51:0x0] file79
+    186  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x52:0x0] file80
+    187  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x53:0x0] file81
+    188  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x54:0x0] file82
+    189  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x55:0x0] file83
+    190  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x56:0x0] file84
+    191  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x57:0x0] file85
+    192  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x58:0x0] file86
+    193  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x59:0x0] file87
+    194  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5a:0x0] file88
+    195  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5b:0x0] file89
+    196  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5c:0x0] file90
+    197  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5d:0x0] file91
+    198  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5e:0x0] file92
+    199  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5f:0x0] file93
+    200  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x60:0x0] file94
+    201  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x61:0x0] file95
+    202  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x62:0x0] file96
+    203  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x63:0x0] file97
+    204  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x64:0x0] file98
+    205  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x65:0x0] file99
+    206  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x66:0x0] file100
+    207  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x67:0x0] file101
+    208  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x68:0x0] file102
+    209  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x69:0x0] file103
+    210  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6a:0x0] file104
+    211  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6b:0x0] file105
+    212  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6c:0x0] file106
+    213  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6d:0x0] file107
+    214  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6e:0x0] file108
+    215  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6f:0x0] file109
+    216  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x70:0x0] file110
+    217  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x71:0x0] file111
+    218  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x72:0x0] file112
+    219  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x73:0x0] file113
+    220  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x74:0x0] file114
+    221  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x75:0x0] file115
+    222  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x76:0x0] file116
+    223  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x77:0x0] file117
+    224  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x78:0x0] file118
+    225  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x79:0x0] file119
+    226  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7a:0x0] file120
+    227  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7b:0x0] file121
+    228  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7c:0x0] file122
+    229  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7d:0x0] file123
+    230  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7e:0x0] file124
+    231  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7f:0x0] file125
+    232  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x80:0x0] file126
+    233  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x81:0x0] file127
+    234  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x82:0x0] file128
+    235  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x83:0x0] file129
+    236  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x84:0x0] file130
+    237  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x85:0x0] file131
+    238  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x86:0x0] file132
+    239  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x87:0x0] file133
+    240  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x88:0x0] file134
+    241  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x89:0x0] file135
+    242  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8a:0x0] file136
+    243  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8b:0x0] file137
+    244  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8c:0x0] file138
+    245  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8d:0x0] file139
+    246  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8e:0x0] file140
+    247  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8f:0x0] file141
+    248  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x90:0x0] file142
+    249  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x91:0x0] file143
+    250  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x92:0x0] file144
+    251  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x93:0x0] file145
+    252  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x94:0x0] file146
+    253  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x95:0x0] file147
+    254  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x96:0x0] file148
+    255  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x97:0x0] file149
+    256  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x98:0x0] file150
+    257  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x99:0x0] file151
+    258  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9a:0x0] file152
+    259  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9b:0x0] file153
+    260  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9c:0x0] file154
+    261  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9d:0x0] file155
+    262  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9e:0x0] file156
+    263  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9f:0x0] file157
+    264  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa0:0x0] file158
+    265  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa1:0x0] file159
+    266  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa2:0x0] file160
+    267  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa3:0x0] file161
+    268  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa4:0x0] file162
+    269  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa5:0x0] file163
+    270  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa6:0x0] file164
+    271  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa7:0x0] file165
+    272  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa8:0x0] file166
+    273  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa9:0x0] file167
+    274  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xaa:0x0] file168
+    275  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xab:0x0] file169
+    276  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xac:0x0] file170
+    277  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xad:0x0] file171
+    278  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xae:0x0] file172
+    279  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xaf:0x0] file173
+    280  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb0:0x0] file174
+    281  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb1:0x0] file175
+    282  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb2:0x0] file176
+    283  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb3:0x0] file177
+    284  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb4:0x0] file178
+    285  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb5:0x0] file179
+    286  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb6:0x0] file180
+    287  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb7:0x0] file181
+    288  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb8:0x0] file182
+    289  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb9:0x0] file183
+    290  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xba:0x0] file184
+    291  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbb:0x0] file185
+    292  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbc:0x0] file186
+    293  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbd:0x0] file187
+    294  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbe:0x0] file188
+    295  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbf:0x0] file189
+    296  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc0:0x0] file190
+    297  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc1:0x0] file191
+    298  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc2:0x0] file192
+    299  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc3:0x0] file193
+    300  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc4:0x0] file194
+    301  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc5:0x0] file195
+    302  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc6:0x0] file196
+    303  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc7:0x0] file197
+    304  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc8:0x0] file198
+    305  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc9:0x0] file199
+    306  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xca:0x0] file200
+    307  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcb:0x0] file201
+    308  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcc:0x0] file202
+    309  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcd:0x0] file203
+    310  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xce:0x0] file204
+    311  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcf:0x0] file205
+    312  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd0:0x0] file206
+    313  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd1:0x0] file207
+    314  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd2:0x0] file208
+    315  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd3:0x0] file209
+    316  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd4:0x0] file210
+    317  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd5:0x0] file211
+    318  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd6:0x0] file212
+    319  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd7:0x0] file213
+    320  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd8:0x0] file214
+    321  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd9:0x0] file215
+    322  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xda:0x0] file216
+    323  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdb:0x0] file217
+    324  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdc:0x0] file218
+    325  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdd:0x0] file219
+    326  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xde:0x0] file220
+    327  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdf:0x0] file221
+    328  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe0:0x0] file222
+    329  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe1:0x0] file223
+    330  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe2:0x0] file224
+    331  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe3:0x0] file225
+    332  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe4:0x0] file226
+    333  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe5:0x0] file227
+    334  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe6:0x0] file228
+    335  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe7:0x0] file229
+    336  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe8:0x0] file230
+    337  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe9:0x0] file231
+    338  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xea:0x0] file232
+    339  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xeb:0x0] file233
+    340  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xec:0x0] file234
+    341  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xed:0x0] file235
+    342  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xee:0x0] file236
+    343  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xef:0x0] file237
+    344  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf0:0x0] file238
+    345  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf1:0x0] file239
+    346  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf2:0x0] file240
+    347  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf3:0x0] file241
+    348  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf4:0x0] file242
+    349  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf5:0x0] file243
+    350  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf6:0x0] file244
+    351  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf7:0x0] file245
+    352  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf8:0x0] file246
+    353  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf9:0x0] file247
+    354  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfa:0x0] file248
+    355  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfb:0x0] file249
+    356  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfc:0x0] file250
+    357  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfd:0x0] file251
+    358  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfe:0x0] file252
+    359  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xff:0x0] file253
+    360  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x100:0x0] file254
+    361  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x101:0x0] file255
+    362  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x102:0x0] file256
+    363  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x103:0x0] file257
+    364  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x104:0x0] file258
+    365  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x105:0x0] file259
+    366  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x106:0x0] file260
+    367  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x107:0x0] file261
+    368  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x108:0x0] file262
+    369  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x109:0x0] file263
+    370  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10a:0x0] file264
+    371  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10b:0x0] file265
+    372  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10c:0x0] file266
+    373  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10d:0x0] file267
+    374  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10e:0x0] file268
+    375  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10f:0x0] file269
+    376  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x110:0x0] file270
+    377  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x111:0x0] file271
+    378  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x112:0x0] file272
+    379  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x113:0x0] file273
+    380  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x114:0x0] file274
+    381  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x115:0x0] file275
+    382  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x116:0x0] file276
+    383  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x117:0x0] file277
+    384  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x118:0x0] file278
+    385  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x119:0x0] file279
+    386  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11a:0x0] file280
+    387  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11b:0x0] file281
+    388  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11c:0x0] file282
+    389  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11d:0x0] file283
+    390  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11e:0x0] file284
+    391  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11f:0x0] file285
+    392  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x120:0x0] file286
+    393  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x121:0x0] file287
+    394  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x122:0x0] file288
+    395  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x123:0x0] file289
+    396  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x124:0x0] file290
+    397  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x125:0x0] file291
+    398  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x126:0x0] file292
+    399  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x127:0x0] file293
+    400  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x128:0x0] file294
+    401  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x129:0x0] file295
+    402  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12a:0x0] file296
+    403  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12b:0x0] file297
+    404  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12c:0x0] file298
+    405  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12d:0x0] file299
+    406  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12e:0x0] file300
+    407  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12f:0x0] file301
+    408  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x130:0x0] file302
+    409  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x131:0x0] file303
+    410  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x132:0x0] file304
+    411  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x133:0x0] file305
+    412  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x134:0x0] file306
+    413  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x135:0x0] file307
+    414  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x136:0x0] file308
+    415  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x137:0x0] file309
+    416  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x138:0x0] file310
+    417  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x139:0x0] file311
+    418  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13a:0x0] file312
+    419  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13b:0x0] file313
+    420  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13c:0x0] file314
+    421  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13d:0x0] file315
+    422  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13e:0x0] file316
+    423  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13f:0x0] file317
+    424  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x140:0x0] file318
+    425  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x141:0x0] file319
+    426  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x142:0x0] file320
+    427  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x143:0x0] file321
+    428  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x144:0x0] file322
+    429  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x145:0x0] file323
+    430  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x146:0x0] file324
+    431  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x147:0x0] file325
+    432  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x148:0x0] file326
+    433  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x149:0x0] file327
+    434  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14a:0x0] file328
+    435  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14b:0x0] file329
+    436  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14c:0x0] file330
+    437  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14d:0x0] file331
+    438  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14e:0x0] file332
+    439  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14f:0x0] file333
+    440  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x150:0x0] file334
+    441  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x151:0x0] file335
+    442  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x152:0x0] file336
+    443  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x153:0x0] file337
+    444  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x154:0x0] file338
+    445  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x155:0x0] file339
+    446  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x156:0x0] file340
+    447  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x157:0x0] file341
+    448  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x158:0x0] file342
+    449  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x159:0x0] file343
+    450  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15a:0x0] file344
+    451  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15b:0x0] file345
+    452  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15c:0x0] file346
+    453  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15d:0x0] file347
+    454  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15e:0x0] file348
+    455  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15f:0x0] file349
+    456  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x160:0x0] file350
+    457  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x161:0x0] file351
+    458  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x162:0x0] file352
+    459  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x163:0x0] file353
+    460  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x164:0x0] file354
+    461  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x165:0x0] file355
+    462  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x166:0x0] file356
+    463  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x167:0x0] file357
+    464  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x168:0x0] file358
+    465  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x169:0x0] file359
+    466  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16a:0x0] file360
+    467  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16b:0x0] file361
+    468  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16c:0x0] file362
+    469  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16d:0x0] file363
+    470  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16e:0x0] file364
+    471  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16f:0x0] file365
+    472  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x170:0x0] file366
+    473  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x171:0x0] file367
+    474  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x172:0x0] file368
+    475  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x173:0x0] file369
+    476  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x174:0x0] file370
+    477  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x175:0x0] file371
+    478  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x176:0x0] file372
+    479  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x177:0x0] file373
+    480  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x178:0x0] file374
+    481  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x179:0x0] file375
+    482  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17a:0x0] file376
+    483  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17b:0x0] file377
+    484  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17c:0x0] file378
+    485  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17d:0x0] file379
+    486  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17e:0x0] file380
+    487  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17f:0x0] file381
+    488  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x180:0x0] file382
+    489  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x181:0x0] file383
+    490  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x182:0x0] file384
+    491  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x183:0x0] file385
+    492  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x184:0x0] file386
+    493  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x185:0x0] file387
+    494  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x186:0x0] file388
+    495  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x187:0x0] file389
+    496  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x188:0x0] file390
+    497  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x189:0x0] file391
+    498  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18a:0x0] file392
+    499  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18b:0x0] file393
+    500  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18c:0x0] file394
+    501  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18d:0x0] file395
+    502  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18e:0x0] file396
+    503  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18f:0x0] file397
+    504  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x190:0x0] file398
+    505  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x191:0x0] file399
+    506  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x192:0x0] file400
+    507  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x193:0x0] file401
+    508  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x194:0x0] file402
+    509  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x195:0x0] file403
+    510  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x196:0x0] file404
+    511  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x197:0x0] file405
+    512  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x198:0x0] file406
+    513  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x199:0x0] file407
+    514  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19a:0x0] file408
+    515  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19b:0x0] file409
+    516  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19c:0x0] file410
+    517  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19d:0x0] file411
+    518  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19e:0x0] file412
+    519  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19f:0x0] file413
+    520  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a0:0x0] file414
+    521  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a1:0x0] file415
+    522  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a2:0x0] file416
+    523  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a3:0x0] file417
+    524  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a4:0x0] file418
+    525  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a5:0x0] file419
+    526  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a6:0x0] file420
+    527  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a7:0x0] file421
+    528  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a8:0x0] file422
+    529  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a9:0x0] file423
+    530  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1aa:0x0] file424
+    531  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ab:0x0] file425
+    532  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ac:0x0] file426
+    533  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ad:0x0] file427
+    534  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ae:0x0] file428
+    535  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1af:0x0] file429
+    536  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b0:0x0] file430
+    537  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b1:0x0] file431
+    538  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b2:0x0] file432
+    539  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b3:0x0] file433
+    540  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b4:0x0] file434
+    541  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b5:0x0] file435
+    542  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b6:0x0] file436
+    543  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b7:0x0] file437
+    544  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b8:0x0] file438
+    545  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b9:0x0] file439
+    546  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ba:0x0] file440
+    547  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bb:0x0] file441
+    548  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bc:0x0] file442
+    549  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bd:0x0] file443
+    550  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1be:0x0] file444
+    551  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bf:0x0] file445
+    552  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c0:0x0] file446
+    553  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c1:0x0] file447
+    554  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c2:0x0] file448
+    555  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c3:0x0] file449
+    556  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c4:0x0] file450
+    557  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c5:0x0] file451
+    558  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c6:0x0] file452
+    559  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c7:0x0] file453
+    560  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c8:0x0] file454
+    561  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c9:0x0] file455
+    562  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ca:0x0] file456
+    563  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cb:0x0] file457
+    564  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cc:0x0] file458
+    565  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cd:0x0] file459
+    566  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ce:0x0] file460
+    567  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cf:0x0] file461
+    568  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d0:0x0] file462
+    569  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d1:0x0] file463
+    570  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d2:0x0] file464
+    571  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d3:0x0] file465
+    572  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d4:0x0] file466
+    573  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d5:0x0] file467
+    574  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d6:0x0] file468
+    575  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d7:0x0] file469
+    576  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d8:0x0] file470
+    577  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d9:0x0] file471
+    578  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1da:0x0] file472
+    579  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1db:0x0] file473
+    580  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1dc:0x0] file474
+    581  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1dd:0x0] file475
+    582  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1de:0x0] file476
+    583  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1df:0x0] file477
+    584  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e0:0x0] file478
+    585  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e1:0x0] file479
+    586  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e2:0x0] file480
+    587  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e3:0x0] file481
+    588  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e4:0x0] file482
+    589  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e5:0x0] file483
+    590  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e6:0x0] file484
+    591  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e7:0x0] file485
+    592  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e8:0x0] file486
+    593  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e9:0x0] file487
+    594  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ea:0x0] file488
+    595  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1eb:0x0] file489
+    596  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ec:0x0] file490
+    597  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ed:0x0] file491
+    598  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ee:0x0] file492
+    599  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ef:0x0] file493
+    600  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f0:0x0] file494
+    601  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f1:0x0] file495
+    602  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f2:0x0] file496
+    603  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f3:0x0] file497
+    604  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f4:0x0] file498
+    605  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f5:0x0] file499
+    606  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f6:0x0] file500
+    607  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f7:0x0] file501
+    608  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f8:0x0] file502
+    609  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f9:0x0] file503
+    610  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fa:0x0] file504
+    611  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fb:0x0] file505
+    612  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fc:0x0] file506
+    613  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fd:0x0] file507
diff --git a/tests/f_dir_optimize/expect.2 b/tests/f_dir_optimize/expect.2
new file mode 100644 (file)
index 0000000..3649a36
--- /dev/null
@@ -0,0 +1,511 @@
+
+     94   40755 (18)      0      0    4096 25-Aug-2012 06:09 fid:[0x5e:0xf6d09ca7:0x0] ..
+    105   40755 (18)      0      0   28672 25-Aug-2012 06:09 fid:[0x200000400:0x1:0x0] .
+    106  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2:0x0] file0
+    107  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3:0x0] file1
+    108  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4:0x0] file2
+    109  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5:0x0] file3
+    110  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6:0x0] file4
+    111  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7:0x0] file5
+    112  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8:0x0] file6
+    113  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9:0x0] file7
+    114  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa:0x0] file8
+    115  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb:0x0] file9
+    116  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc:0x0] file10
+    117  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd:0x0] file11
+    118  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe:0x0] file12
+    119  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf:0x0] file13
+    120  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10:0x0] file14
+    121  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11:0x0] file15
+    122  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12:0x0] file16
+    123  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13:0x0] file17
+    124  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14:0x0] file18
+    125  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15:0x0] file19
+    126  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16:0x0] file20
+    127  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17:0x0] file21
+    128  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18:0x0] file22
+    129  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19:0x0] file23
+    130  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a:0x0] file24
+    131  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b:0x0] file25
+    132  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c:0x0] file26
+    133  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d:0x0] file27
+    134  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e:0x0] file28
+    135  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f:0x0] file29
+    136  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x20:0x0] file30
+    137  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x21:0x0] file31
+    138  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x22:0x0] file32
+    139  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x23:0x0] file33
+    140  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x24:0x0] file34
+    141  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x25:0x0] file35
+    142  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x26:0x0] file36
+    143  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x27:0x0] file37
+    144  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x28:0x0] file38
+    145  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x29:0x0] file39
+    146  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2a:0x0] file40
+    147  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2b:0x0] file41
+    148  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2c:0x0] file42
+    149  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2d:0x0] file43
+    150  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2e:0x0] file44
+    151  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x2f:0x0] file45
+    152  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x30:0x0] file46
+    153  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x31:0x0] file47
+    154  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x32:0x0] file48
+    155  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x33:0x0] file49
+    156  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x34:0x0] file50
+    157  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x35:0x0] file51
+    158  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x36:0x0] file52
+    159  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x37:0x0] file53
+    160  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x38:0x0] file54
+    161  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x39:0x0] file55
+    162  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3a:0x0] file56
+    163  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3b:0x0] file57
+    164  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3c:0x0] file58
+    165  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3d:0x0] file59
+    166  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3e:0x0] file60
+    167  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x3f:0x0] file61
+    168  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x40:0x0] file62
+    169  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x41:0x0] file63
+    170  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x42:0x0] file64
+    171  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x43:0x0] file65
+    172  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x44:0x0] file66
+    173  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x45:0x0] file67
+    174  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x46:0x0] file68
+    175  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x47:0x0] file69
+    176  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x48:0x0] file70
+    177  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x49:0x0] file71
+    178  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4a:0x0] file72
+    179  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4b:0x0] file73
+    180  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4c:0x0] file74
+    181  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4d:0x0] file75
+    182  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4e:0x0] file76
+    183  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x4f:0x0] file77
+    184  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x50:0x0] file78
+    185  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x51:0x0] file79
+    186  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x52:0x0] file80
+    187  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x53:0x0] file81
+    188  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x54:0x0] file82
+    189  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x55:0x0] file83
+    190  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x56:0x0] file84
+    191  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x57:0x0] file85
+    192  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x58:0x0] file86
+    193  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x59:0x0] file87
+    194  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5a:0x0] file88
+    195  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5b:0x0] file89
+    196  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5c:0x0] file90
+    197  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5d:0x0] file91
+    198  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5e:0x0] file92
+    199  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x5f:0x0] file93
+    200  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x60:0x0] file94
+    201  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x61:0x0] file95
+    202  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x62:0x0] file96
+    203  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x63:0x0] file97
+    204  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x64:0x0] file98
+    205  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x65:0x0] file99
+    206  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x66:0x0] file100
+    207  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x67:0x0] file101
+    208  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x68:0x0] file102
+    209  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x69:0x0] file103
+    210  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6a:0x0] file104
+    211  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6b:0x0] file105
+    212  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6c:0x0] file106
+    213  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6d:0x0] file107
+    214  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6e:0x0] file108
+    215  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x6f:0x0] file109
+    216  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x70:0x0] file110
+    217  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x71:0x0] file111
+    218  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x72:0x0] file112
+    219  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x73:0x0] file113
+    220  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x74:0x0] file114
+    221  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x75:0x0] file115
+    222  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x76:0x0] file116
+    223  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x77:0x0] file117
+    224  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x78:0x0] file118
+    225  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x79:0x0] file119
+    226  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7a:0x0] file120
+    227  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7b:0x0] file121
+    228  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7c:0x0] file122
+    229  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7d:0x0] file123
+    230  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7e:0x0] file124
+    231  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x7f:0x0] file125
+    232  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x80:0x0] file126
+    233  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x81:0x0] file127
+    234  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x82:0x0] file128
+    235  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x83:0x0] file129
+    236  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x84:0x0] file130
+    237  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x85:0x0] file131
+    238  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x86:0x0] file132
+    239  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x87:0x0] file133
+    240  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x88:0x0] file134
+    241  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x89:0x0] file135
+    242  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8a:0x0] file136
+    243  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8b:0x0] file137
+    244  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8c:0x0] file138
+    245  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8d:0x0] file139
+    246  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8e:0x0] file140
+    247  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x8f:0x0] file141
+    248  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x90:0x0] file142
+    249  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x91:0x0] file143
+    250  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x92:0x0] file144
+    251  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x93:0x0] file145
+    252  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x94:0x0] file146
+    253  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x95:0x0] file147
+    254  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x96:0x0] file148
+    255  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x97:0x0] file149
+    256  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x98:0x0] file150
+    257  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x99:0x0] file151
+    258  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9a:0x0] file152
+    259  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9b:0x0] file153
+    260  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9c:0x0] file154
+    261  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9d:0x0] file155
+    262  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9e:0x0] file156
+    263  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x9f:0x0] file157
+    264  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa0:0x0] file158
+    265  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa1:0x0] file159
+    266  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa2:0x0] file160
+    267  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa3:0x0] file161
+    268  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa4:0x0] file162
+    269  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa5:0x0] file163
+    270  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa6:0x0] file164
+    271  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa7:0x0] file165
+    272  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa8:0x0] file166
+    273  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xa9:0x0] file167
+    274  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xaa:0x0] file168
+    275  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xab:0x0] file169
+    276  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xac:0x0] file170
+    277  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xad:0x0] file171
+    278  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xae:0x0] file172
+    279  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xaf:0x0] file173
+    280  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb0:0x0] file174
+    281  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb1:0x0] file175
+    282  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb2:0x0] file176
+    283  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb3:0x0] file177
+    284  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb4:0x0] file178
+    285  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb5:0x0] file179
+    286  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb6:0x0] file180
+    287  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb7:0x0] file181
+    288  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb8:0x0] file182
+    289  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xb9:0x0] file183
+    290  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xba:0x0] file184
+    291  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbb:0x0] file185
+    292  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbc:0x0] file186
+    293  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbd:0x0] file187
+    294  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbe:0x0] file188
+    295  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xbf:0x0] file189
+    296  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc0:0x0] file190
+    297  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc1:0x0] file191
+    298  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc2:0x0] file192
+    299  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc3:0x0] file193
+    300  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc4:0x0] file194
+    301  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc5:0x0] file195
+    302  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc6:0x0] file196
+    303  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc7:0x0] file197
+    304  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc8:0x0] file198
+    305  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xc9:0x0] file199
+    306  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xca:0x0] file200
+    307  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcb:0x0] file201
+    308  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcc:0x0] file202
+    309  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcd:0x0] file203
+    310  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xce:0x0] file204
+    311  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xcf:0x0] file205
+    312  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd0:0x0] file206
+    313  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd1:0x0] file207
+    314  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd2:0x0] file208
+    315  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd3:0x0] file209
+    316  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd4:0x0] file210
+    317  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd5:0x0] file211
+    318  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd6:0x0] file212
+    319  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd7:0x0] file213
+    320  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd8:0x0] file214
+    321  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xd9:0x0] file215
+    322  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xda:0x0] file216
+    323  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdb:0x0] file217
+    324  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdc:0x0] file218
+    325  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdd:0x0] file219
+    326  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xde:0x0] file220
+    327  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xdf:0x0] file221
+    328  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe0:0x0] file222
+    329  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe1:0x0] file223
+    330  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe2:0x0] file224
+    331  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe3:0x0] file225
+    332  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe4:0x0] file226
+    333  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe5:0x0] file227
+    334  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe6:0x0] file228
+    335  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe7:0x0] file229
+    336  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe8:0x0] file230
+    337  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xe9:0x0] file231
+    338  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xea:0x0] file232
+    339  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xeb:0x0] file233
+    340  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xec:0x0] file234
+    341  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xed:0x0] file235
+    342  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xee:0x0] file236
+    343  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xef:0x0] file237
+    344  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf0:0x0] file238
+    345  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf1:0x0] file239
+    346  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf2:0x0] file240
+    347  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf3:0x0] file241
+    348  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf4:0x0] file242
+    349  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf5:0x0] file243
+    350  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf6:0x0] file244
+    351  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf7:0x0] file245
+    352  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf8:0x0] file246
+    353  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xf9:0x0] file247
+    354  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfa:0x0] file248
+    355  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfb:0x0] file249
+    356  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfc:0x0] file250
+    357  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfd:0x0] file251
+    358  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xfe:0x0] file252
+    359  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0xff:0x0] file253
+    360  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x100:0x0] file254
+    361  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x101:0x0] file255
+    362  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x102:0x0] file256
+    363  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x103:0x0] file257
+    364  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x104:0x0] file258
+    365  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x105:0x0] file259
+    366  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x106:0x0] file260
+    367  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x107:0x0] file261
+    368  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x108:0x0] file262
+    369  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x109:0x0] file263
+    370  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10a:0x0] file264
+    371  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10b:0x0] file265
+    372  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10c:0x0] file266
+    373  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10d:0x0] file267
+    374  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10e:0x0] file268
+    375  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x10f:0x0] file269
+    376  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x110:0x0] file270
+    377  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x111:0x0] file271
+    378  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x112:0x0] file272
+    379  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x113:0x0] file273
+    380  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x114:0x0] file274
+    381  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x115:0x0] file275
+    382  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x116:0x0] file276
+    383  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x117:0x0] file277
+    384  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x118:0x0] file278
+    385  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x119:0x0] file279
+    386  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11a:0x0] file280
+    387  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11b:0x0] file281
+    388  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11c:0x0] file282
+    389  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11d:0x0] file283
+    390  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11e:0x0] file284
+    391  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x11f:0x0] file285
+    392  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x120:0x0] file286
+    393  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x121:0x0] file287
+    394  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x122:0x0] file288
+    395  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x123:0x0] file289
+    396  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x124:0x0] file290
+    397  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x125:0x0] file291
+    398  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x126:0x0] file292
+    399  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x127:0x0] file293
+    400  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x128:0x0] file294
+    401  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x129:0x0] file295
+    402  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12a:0x0] file296
+    403  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12b:0x0] file297
+    404  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12c:0x0] file298
+    405  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12d:0x0] file299
+    406  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12e:0x0] file300
+    407  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x12f:0x0] file301
+    408  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x130:0x0] file302
+    409  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x131:0x0] file303
+    410  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x132:0x0] file304
+    411  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x133:0x0] file305
+    412  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x134:0x0] file306
+    413  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x135:0x0] file307
+    414  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x136:0x0] file308
+    415  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x137:0x0] file309
+    416  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x138:0x0] file310
+    417  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x139:0x0] file311
+    418  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13a:0x0] file312
+    419  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13b:0x0] file313
+    420  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13c:0x0] file314
+    421  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13d:0x0] file315
+    422  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13e:0x0] file316
+    423  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x13f:0x0] file317
+    424  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x140:0x0] file318
+    425  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x141:0x0] file319
+    426  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x142:0x0] file320
+    427  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x143:0x0] file321
+    428  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x144:0x0] file322
+    429  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x145:0x0] file323
+    430  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x146:0x0] file324
+    431  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x147:0x0] file325
+    432  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x148:0x0] file326
+    433  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x149:0x0] file327
+    434  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14a:0x0] file328
+    435  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14b:0x0] file329
+    436  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14c:0x0] file330
+    437  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14d:0x0] file331
+    438  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14e:0x0] file332
+    439  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x14f:0x0] file333
+    440  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x150:0x0] file334
+    441  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x151:0x0] file335
+    442  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x152:0x0] file336
+    443  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x153:0x0] file337
+    444  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x154:0x0] file338
+    445  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x155:0x0] file339
+    446  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x156:0x0] file340
+    447  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x157:0x0] file341
+    448  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x158:0x0] file342
+    449  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x159:0x0] file343
+    450  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15a:0x0] file344
+    451  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15b:0x0] file345
+    452  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15c:0x0] file346
+    453  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15d:0x0] file347
+    454  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15e:0x0] file348
+    455  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x15f:0x0] file349
+    456  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x160:0x0] file350
+    457  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x161:0x0] file351
+    458  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x162:0x0] file352
+    459  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x163:0x0] file353
+    460  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x164:0x0] file354
+    461  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x165:0x0] file355
+    462  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x166:0x0] file356
+    463  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x167:0x0] file357
+    464  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x168:0x0] file358
+    465  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x169:0x0] file359
+    466  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16a:0x0] file360
+    467  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16b:0x0] file361
+    468  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16c:0x0] file362
+    469  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16d:0x0] file363
+    470  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16e:0x0] file364
+    471  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x16f:0x0] file365
+    472  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x170:0x0] file366
+    473  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x171:0x0] file367
+    474  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x172:0x0] file368
+    475  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x173:0x0] file369
+    476  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x174:0x0] file370
+    477  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x175:0x0] file371
+    478  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x176:0x0] file372
+    479  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x177:0x0] file373
+    480  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x178:0x0] file374
+    481  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x179:0x0] file375
+    482  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17a:0x0] file376
+    483  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17b:0x0] file377
+    484  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17c:0x0] file378
+    485  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17d:0x0] file379
+    486  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17e:0x0] file380
+    487  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x17f:0x0] file381
+    488  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x180:0x0] file382
+    489  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x181:0x0] file383
+    490  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x182:0x0] file384
+    491  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x183:0x0] file385
+    492  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x184:0x0] file386
+    493  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x185:0x0] file387
+    494  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x186:0x0] file388
+    495  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x187:0x0] file389
+    496  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x188:0x0] file390
+    497  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x189:0x0] file391
+    498  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18a:0x0] file392
+    499  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18b:0x0] file393
+    500  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18c:0x0] file394
+    501  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18d:0x0] file395
+    502  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18e:0x0] file396
+    503  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x18f:0x0] file397
+    504  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x190:0x0] file398
+    505  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x191:0x0] file399
+    506  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x192:0x0] file400
+    507  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x193:0x0] file401
+    508  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x194:0x0] file402
+    509  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x195:0x0] file403
+    510  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x196:0x0] file404
+    511  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x197:0x0] file405
+    512  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x198:0x0] file406
+    513  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x199:0x0] file407
+    514  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19a:0x0] file408
+    515  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19b:0x0] file409
+    516  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19c:0x0] file410
+    517  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19d:0x0] file411
+    518  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19e:0x0] file412
+    519  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x19f:0x0] file413
+    520  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a0:0x0] file414
+    521  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a1:0x0] file415
+    522  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a2:0x0] file416
+    523  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a3:0x0] file417
+    524  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a4:0x0] file418
+    525  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a5:0x0] file419
+    526  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a6:0x0] file420
+    527  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a7:0x0] file421
+    528  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a8:0x0] file422
+    529  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1a9:0x0] file423
+    530  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1aa:0x0] file424
+    531  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ab:0x0] file425
+    532  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ac:0x0] file426
+    533  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ad:0x0] file427
+    534  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ae:0x0] file428
+    535  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1af:0x0] file429
+    536  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b0:0x0] file430
+    537  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b1:0x0] file431
+    538  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b2:0x0] file432
+    539  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b3:0x0] file433
+    540  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b4:0x0] file434
+    541  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b5:0x0] file435
+    542  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b6:0x0] file436
+    543  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b7:0x0] file437
+    544  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b8:0x0] file438
+    545  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1b9:0x0] file439
+    546  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ba:0x0] file440
+    547  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bb:0x0] file441
+    548  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bc:0x0] file442
+    549  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bd:0x0] file443
+    550  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1be:0x0] file444
+    551  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1bf:0x0] file445
+    552  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c0:0x0] file446
+    553  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c1:0x0] file447
+    554  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c2:0x0] file448
+    555  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c3:0x0] file449
+    556  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c4:0x0] file450
+    557  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c5:0x0] file451
+    558  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c6:0x0] file452
+    559  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c7:0x0] file453
+    560  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c8:0x0] file454
+    561  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1c9:0x0] file455
+    562  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ca:0x0] file456
+    563  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cb:0x0] file457
+    564  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cc:0x0] file458
+    565  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cd:0x0] file459
+    566  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ce:0x0] file460
+    567  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1cf:0x0] file461
+    568  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d0:0x0] file462
+    569  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d1:0x0] file463
+    570  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d2:0x0] file464
+    571  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d3:0x0] file465
+    572  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d4:0x0] file466
+    573  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d5:0x0] file467
+    574  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d6:0x0] file468
+    575  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d7:0x0] file469
+    576  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d8:0x0] file470
+    577  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1d9:0x0] file471
+    578  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1da:0x0] file472
+    579  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1db:0x0] file473
+    580  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1dc:0x0] file474
+    581  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1dd:0x0] file475
+    582  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1de:0x0] file476
+    583  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1df:0x0] file477
+    584  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e0:0x0] file478
+    585  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e1:0x0] file479
+    586  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e2:0x0] file480
+    587  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e3:0x0] file481
+    588  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e4:0x0] file482
+    589  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e5:0x0] file483
+    590  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e6:0x0] file484
+    591  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e7:0x0] file485
+    592  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e8:0x0] file486
+    593  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1e9:0x0] file487
+    594  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ea:0x0] file488
+    595  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1eb:0x0] file489
+    596  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ec:0x0] file490
+    597  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ed:0x0] file491
+    598  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ee:0x0] file492
+    599  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1ef:0x0] file493
+    600  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f0:0x0] file494
+    601  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f1:0x0] file495
+    602  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f2:0x0] file496
+    603  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f3:0x0] file497
+    604  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f4:0x0] file498
+    605  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f5:0x0] file499
+    606  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f6:0x0] file500
+    607  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f7:0x0] file501
+    608  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f8:0x0] file502
+    609  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1f9:0x0] file503
+    610  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fa:0x0] file504
+    611  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fb:0x0] file505
+    612  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fc:0x0] file506
+    613  100644 (17)      0      0       0 25-Aug-2012 06:09 fid:[0x200000400:0x1fd:0x0] file507
diff --git a/tests/f_dir_optimize/image.gz b/tests/f_dir_optimize/image.gz
new file mode 100644 (file)
index 0000000..d457d3b
Binary files /dev/null and b/tests/f_dir_optimize/image.gz differ
diff --git a/tests/f_dir_optimize/name b/tests/f_dir_optimize/name
new file mode 100644 (file)
index 0000000..8a059bf
--- /dev/null
@@ -0,0 +1 @@
+optimize directories
diff --git a/tests/f_dir_optimize/script b/tests/f_dir_optimize/script
new file mode 100644 (file)
index 0000000..f535e7b
--- /dev/null
@@ -0,0 +1,36 @@
+FSCK_OPT="-fvyD"
+
+IMAGE=$test_dir/image.gz
+gunzip < $IMAGE > $TMPFILE
+
+$DEBUGFS -R 'ls -lD /ROOT/testdir' $TMPFILE 2>&1 | tail -n +2 |        \
+       sort > $test_name.1.log
+
+cmp -s $test_dir/expect.1 $test_name.1.log
+status1=$?
+
+$FSCK $FSCK_OPT -N test_filesys $TMPFILE > /dev/null 2>&1
+
+$DEBUGFS -R 'ls -lD /ROOT/testdir' $TMPFILE 2>&1 | tail -n +2 |        \
+       sort > $test_name.2.log
+cmp -s $test_dir/expect.2 $test_name.2.log
+status2=$?
+
+if [ "$status1" -eq 0 -a "$status2" -eq 0 ]; then
+       echo "$test_name: $test_description: ok"
+       touch $test_name.ok
+else
+       echo "$test_name: $test_description: failed"
+       [ $status1 -ne 0 ] &&
+               diff $DIFF_OPTS $test_dir/expect.1 $test_name.1.log     \
+                       >> $test_name.failed
+       [ $status2 -ne 0 ] &&
+               diff $DIFF_OPTS $test_dir/expect.2 $test_name.2.log     \
+                       >> $test_name.failed
+fi
+
+if [ "$SKIP_CLEANUP" != "true" ] ; then
+       unset IMAGE FSCK_OPT
+       unset SKIP_CLEANUP
+       unset DESCRIPTION SKIP_UNLINK
+fi
diff --git a/tests/f_dirdata_optimize/expect.1 b/tests/f_dirdata_optimize/expect.1
new file mode 100644 (file)
index 0000000..52368d3
--- /dev/null
@@ -0,0 +1,10 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 3A: Optimizing directories
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 102/4096 files (2.9% non-contiguous), 686/2048 blocks
+Exit status is 0
diff --git a/tests/f_dirdata_optimize/expect.2 b/tests/f_dirdata_optimize/expect.2
new file mode 100644 (file)
index 0000000..3cf9314
--- /dev/null
@@ -0,0 +1,7 @@
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Pass 4: Checking reference counts
+Pass 5: Checking group summary information
+test_filesys: 102/4096 files (2.9% non-contiguous), 686/2048 blocks
+Exit status is 0
diff --git a/tests/f_dirdata_optimize/image.gz b/tests/f_dirdata_optimize/image.gz
new file mode 100644 (file)
index 0000000..fcb7f4f
Binary files /dev/null and b/tests/f_dirdata_optimize/image.gz differ
diff --git a/tests/f_dirdata_optimize/name b/tests/f_dirdata_optimize/name
new file mode 100644 (file)
index 0000000..1649a37
--- /dev/null
@@ -0,0 +1 @@
+optimize directories with dirdata
diff --git a/tests/f_dirdata_optimize/script b/tests/f_dirdata_optimize/script
new file mode 100644 (file)
index 0000000..52cf88e
--- /dev/null
@@ -0,0 +1,3 @@
+FSCK_OPT="-Dyf"
+SECOND_FSCK_OPT="-yf"
+. $cmd_dir/run_e2fsck