On Wed, Apr 5, 2017 at 3:30 PM, David Sterba <dsterba@xxxxxxx> wrote: > On Wed, Apr 05, 2017 at 11:53:41AM +0100, David Howells wrote: >> I've added a test to xfstests that exercises the new statx syscall. However, >> it fails on btrfs: >> >> Test statx on a directory >> +[!] stx_nlink differs, 1 != 2 >> +Failed >> +stat_test failed >> >> because a new directory it creates has an nlink of 1, not 2. Is this a case >> of my making an incorrect assumption or is it an fs bug? > > Afaik nlink == 1 means that there's no accounting of subdirectories, and > it's a valid value. The 'find' utility can use nlink to optimize > directory traversal but otherwise I'm not aware of other usage. > > All directories in btrfs have nlink == 1. FYI, Overlayfs uses nlink = 1 for merge dirs to silence 'find' et al. Ext4 uses nlink = 1 for directories with more than 32K subdirs (EXT4_FEATURE_RO_COMPAT_DIR_NLINK). But in both those fs newly created directories will have nlink = 2.