On Mon, Oct 29, 2018 at 4:38 PM Eric Sandeen <sandeen@xxxxxxxxxxx> wrote: > On 10/26/18 3:19 PM, Stefan Ring wrote: > > --- > > db/metadump.c | 22 +++++++++++++++++++++- > > 1 file changed, 21 insertions(+), 1 deletion(-) > > > > diff --git a/db/metadump.c b/db/metadump.c > > index 39183fb7..bdc6f2f4 100644 > > --- a/db/metadump.c > > +++ b/db/metadump.c > > @@ -2269,6 +2269,24 @@ process_inode_data( > > return 1; > > } > > > > +static int > > +process_dev_inode( > > + xfs_dinode_t *dip) > > +{ > > + if (XFS_DFORK_NEXTENTS(dip, XFS_ATTR_FORK) || > > + XFS_DFORK_NEXTENTS(dip, XFS_DATA_FORK)) { > > + if (show_warnings) > > + print_warning("inode %llu has unexpected extents", > > + (unsigned long long)cur_ino); > > + return 0; > > + } else { > > + int used = XFS_DFORK_DPTR(dip) - (char*)dip; > > + > > + memset(XFS_DFORK_DPTR(dip), 0, mp->m_sb.sb_inodesize - used); > > + return 1; > > + } > > +} > > + > > /* > > * when we process the inode, we may change the data in the data and/or > > * attribute fork if they are in short form and we are obfuscating names. > > @@ -2321,7 +2339,9 @@ process_inode( > > case S_IFREG: > > success = process_inode_data(dip, TYP_DATA); > > break; > > - default: ; > > + default: > > + success = process_dev_inode(dip); > > + break; > > Probably: > case S_IFBLK: > case S_IFCHR: > success = process_dev_inode(dip); > break; > default: > break; > > no? Does this catch pipes and sockets, which are also dev inodes? > > > } > > nametable_clear(); > > > >