I've narrowed down the strange behavior to sort of minimal example (/mnt/archive is a NetApp mount point):
umount /mnt/archive && mount /mnt/archive \ && stat --printf "%d\t%i\t%n\n" /mnt/archive/.snapshot \ && stat --printf "%d\t%i\t%n\n" /mnt/archive/.snapshot/hourly.0 \ && stat --printf "%d\t%i\t%n\n" /mnt/archive/.snapshot
The output is following:
20 67 /mnt/archive/.snapshot 26 222 /mnt/archive/.snapshot/hourly.0 26 67 /mnt/archive/.snapshot
The device number is being changed on the fly while the inode number stays unchanged. It sounds like a file system bug to me. It's 100% reproducible on my box.
I've narrowed down the strange behavior to sort of minimal example (/mnt/archive is a NetApp mount point):
umount /mnt/archive && mount /mnt/archive \ .snapshot \ .snapshot/ hourly. 0 \ .snapshot
&& stat --printf "%d\t%i\t%n\n" /mnt/archive/
&& stat --printf "%d\t%i\t%n\n" /mnt/archive/
&& stat --printf "%d\t%i\t%n\n" /mnt/archive/
The output is following:
20 67 /mnt/archive/ .snapshot .snapshot/ hourly. 0 .snapshot
26 222 /mnt/archive/
26 67 /mnt/archive/
The device number is being changed on the fly while the inode number stays unchanged. It sounds like a file system bug to me. It's 100% reproducible on my box.