[PATCH 2/4] xfs_repair: clear need_root_dotdot if we rebuild the root dir

Eric Sandeen
2015-03-04T20:59:05Z

It's possible to enter longform_dir2_rebuild with need_root_dotdot
set; rebuilding it will add "..", and if need_root_dotdot stays set,
we'll add another ".." entry, causing a second repair to find and
fix that newly-introduced problem.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---

diff --git a/repair/phase6.c b/repair/phase6.c
index 0ec4f07..1728609 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
@@ -1354,6 +1354,9 @@ longform_dir2_rebuild(

libxfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC);

+ if (ino == mp->m_sb.sb_rootino)
+ need_root_dotdot = 0;
+
/* go through the hash list and re-add the inodes */

for (p = hashtab->first; p; p = p->nextbyorder) {