+2003-12-12 Theodore Ts'o <tytso@mit.edu>
+
+ * pass3.c (check_directory): When reconnecting a directory, we may
+ need to create a lost+found directory. This may
+ invalidate our pointer to the directory information, so we
+ must look it up again after calling
+ e2fsck_reconnect_file(). (Addresses Debian bug #219640).
+
2003-12-10 Theodore Ts'o <tytso@mit.edu>
* e2fsck.h (E2F_FLAG_RESTARTED): Assign a unique flag bitfield to
p->parent)))) {
pctx->ino = p->ino;
if (fix_problem(ctx, PR_3_UNCONNECTED_DIR, pctx)) {
- if (e2fsck_reconnect_file(ctx, p->ino))
+ if (e2fsck_reconnect_file(ctx, pctx->ino))
ext2fs_unmark_valid(fs);
else {
+ p = e2fsck_get_dir_info(ctx, pctx->ino);
p->parent = ctx->lost_and_found;
fix_dotdot(ctx, p, ctx->lost_and_found);
}
+2003-12-12 Theodore Ts'o <tytso@mit.edu>
+
+ * f_lpf2: New test case to validate reconnecting a directory after
+ creating /lost+found.
+
2003-09-03 Theodore Ts'o <tytso@mit.edu>
* m_meta_bg: New test case to test the meta block group feature.
--- /dev/null
+Pass 1: Checking inodes, blocks, and sizes
+Pass 2: Checking directory structure
+Pass 3: Checking directory connectivity
+Unconnected directory inode 12 (/???)
+Connect to /lost+found? yes
+
+/lost+found not found. Create? yes
+
+Unconnected directory inode 13 (/???)
+Connect to /lost+found? yes
+
+Pass 4: Checking reference counts
+Inode 2 ref count is 4, should be 3. Fix? yes
+
+Inode 12 ref count is 3, should be 2. Fix? yes
+
+Inode 13 ref count is 3, should be 2. Fix? yes
+
+Pass 5: Checking group summary information
+Block bitmap differences: -(9--19)
+Fix? yes
+
+Free blocks count wrong for group #0 (77, counted=89).
+Fix? yes
+
+Free blocks count wrong (77, counted=89).
+Fix? yes
+
+Free inodes count wrong for group #0 (2, counted=3).
+Fix? yes
+
+Directories count wrong for group #0 (5, counted=4).
+Fix? yes
+
+Free inodes count wrong (2, counted=3).
+Fix? yes
+
+
+test_filesys: ***** FILE SYSTEM WAS MODIFIED *****
+test_filesys: 13/16 files (0.0% non-contiguous), 11/100 blocks
+Exit status is 1
--- /dev/null
+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: 13/16 files (0.0% non-contiguous), 11/100 blocks
+Exit status is 0
--- /dev/null
+create lost+found and reconnect lost directory