fsck: print inode number on file read error
This makes it possible to find the file without mounting the fs.
This commit is contained in:
parent
f4a972ddf1
commit
d620054caf
9
fsck.go
9
fsck.go
|
@ -11,6 +11,7 @@ import (
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
"github.com/hanwen/go-fuse/fuse"
|
"github.com/hanwen/go-fuse/fuse"
|
||||||
|
"github.com/hanwen/go-fuse/fuse/nodefs"
|
||||||
|
|
||||||
"github.com/rfjakob/gocryptfs/internal/exitcodes"
|
"github.com/rfjakob/gocryptfs/internal/exitcodes"
|
||||||
"github.com/rfjakob/gocryptfs/internal/fusefrontend"
|
"github.com/rfjakob/gocryptfs/internal/fusefrontend"
|
||||||
|
@ -127,7 +128,7 @@ func (ck *fsckObj) file(path string) {
|
||||||
result, status := f.Read(buf, off)
|
result, status := f.Read(buf, off)
|
||||||
if !status.Ok() {
|
if !status.Ok() {
|
||||||
ck.markCorrupt(path)
|
ck.markCorrupt(path)
|
||||||
fmt.Printf("fsck: error reading file %q at offset %d: %v\n", path, off, status)
|
fmt.Printf("fsck: error reading file %q (inum %d) at offset %d: %v\n", path, inum(f), off, status)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// EOF
|
// EOF
|
||||||
|
@ -218,3 +219,9 @@ func (s sortableDirEntries) Swap(i, j int) {
|
||||||
func (s sortableDirEntries) Less(i, j int) bool {
|
func (s sortableDirEntries) Less(i, j int) bool {
|
||||||
return strings.Compare(s[i].Name, s[j].Name) < 0
|
return strings.Compare(s[i].Name, s[j].Name) < 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func inum(f nodefs.File) uint64 {
|
||||||
|
var a fuse.Attr
|
||||||
|
f.GetAttr(&a)
|
||||||
|
return a.Ino
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue