storage/FileInfo, db/simple/Directory: use 64 bit for device/inode

An ino_t is usually a 64 bit integer, and some file systems (such as
Linux's kernel NFS client) really uses the upper 32 bit.  This can
lead to false positives in the directory loop detection in
FindAncestorLoop().  Increasing these two attributes (in
StorageFileInfo and Directory) to 64 bit adds little overhead, but
makes the check a lot safer.
This commit is contained in:
Max Kellermann
2017-04-06 09:58:25 +02:00
parent 32bcad51b8
commit 504f5f7bdd
3 changed files with 4 additions and 2 deletions

View File

@@ -86,7 +86,7 @@ struct Directory {
Directory *parent;
time_t mtime;
unsigned inode, device;
uint64_t inode, device;
std::string path;