From: Jan Kara Date: Mon, 15 Sep 2014 23:16:44 +0000 (+1000) Subject: repair: Set ftype for entries in lost+found X-Git-Tag: v3.2.2~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=937ef315ac6c7301de505f00fa956bc7357a6858;p=thirdparty%2Fxfsprogs-dev.git repair: Set ftype for entries in lost+found So far all entries in lost+found had file type XFS_DIR3_FT_UNKNOWN which is somewhat annoying as the next xfs_repair pass will find these and report as an error. Set proper file type when creating these entries. Signed-off-by: Jan Kara Reviewed-by: Brian Foster Signed-off-by: Dave Chinner --- diff --git a/repair/phase6.c b/repair/phase6.c index f13069f4c..0ec4f07ca 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -1097,8 +1097,6 @@ mv_orphanage( xname.name = fname; xname.len = snprintf((char *)fname, sizeof(fname), "%llu", (unsigned long long)ino); - /* XXX use xfs_mode_to_ftype[] when userspace gains it */ - xname.type = XFS_DIR3_FT_UNKNOWN; err = libxfs_iget(mp, NULL, orphanage_ino, 0, &orphanage_ip, 0); if (err) @@ -1117,6 +1115,8 @@ mv_orphanage( if ((err = libxfs_iget(mp, NULL, ino, 0, &ino_p, 0))) do_error(_("%d - couldn't iget disconnected inode\n"), err); + xname.type = xfs_mode_to_ftype[(ino_p->i_d.di_mode & S_IFMT)>>S_SHIFT]; + if (isa_dir) { irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, orphanage_ino), XFS_INO_TO_AGINO(mp, orphanage_ino));