<div dir="ltr"><div><div>Package: disorderfs<br>Version: 0.5.2<br>Severity: [normal]<br><br>When using disorderfs the inodes returned by a system call to getdents are all the same value:<br><span style="font-family:monospace,monospace">> disorderfs Getdents/ disorder/<br>disorderfs: reversing dirents<br>> cd disorder/<br>disorder ) ./getdents <br>--------------- nread=80 ---------------<br><b>i-node#</b>  file type  d_reclen  d_off   d_name<br><b>4294967295</b>  ???          24         32  ..<br><b>4294967295</b>  ???          24         64  .<br><b>4294967295</b>  ???          32         96  getdents</span><br><br></div><div><i>getdents </i>is a tiny C program copied from the <span style="font-family:monospace,monospace">man 2 getdents </span><span style="font-family:arial,helvetica,sans-serif">example at the bottom.<br></span></div><div><br></div>Meanwhile stat correctly returns a unique inode:<span style="font-family:monospace,monospace"><br>> stat getdents <br>  File: getdents<br>  Size: 8512          Blocks: 25         IO Block: 4096   regular file<br>Device: 30h/48d    <b>Inode: 2</b>           Links: 1<br>...<br>disorder ) stat .<br>  File: .<br>  Size: 4096          Blocks: 9          IO Block: 4096   directory<br>Device: 30h/48d    <b>Inode: 1</b>           Links: 2</span><br><br></div>This leads to an inconsistent state between inodes as well as breaking assumptions programs might make about unique inodes when checking the results of getdents.<br><br><br></div>