serve nfs: fix missing inode numbers which was messing up ls -laR

In 6ba3e24853

    serve nfs: fix incorrect user id and group id exported to NFS #7973

We updated the stat function to output uid and gid. However this set
the inode numbers of everything to -1. This causes a problem with
doing `ls -laR` giving "not listing already-listed directory" as it
uses inode numbers to see if it has listed a directory or not.

This patch reads the inode number from the vfs.Node and sets it in the
Stat output.
This commit is contained in:
Nick Craig-Wood 2024-11-19 15:45:09 +00:00
parent 79797b10e4
commit 9e706ec984

View file

@ -3,7 +3,6 @@
package nfs
import (
"math"
"os"
"path"
"strings"
@ -37,7 +36,7 @@ func setSys(fi os.FileInfo) {
Nlink: 1,
UID: vfs.Opt.UID,
GID: vfs.Opt.GID,
Fileid: math.MaxUint64, // without this mounting doesn't work on Linux
Fileid: node.Inode(), // without this mounting doesn't work on Linux
}
node.SetSys(&stat)
}