diff options
author | Jakob Unterwurzacher | 2018-07-23 22:34:41 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2018-07-23 22:34:41 +0200 |
commit | d620054caf011982dce2eef5fde0ad11738c4cea (patch) | |
tree | c30fb8871bfdf78248c0947aea594fdbc727781d | |
parent | f4a972ddf1f8002095b1e57bd93bb8894ae745f2 (diff) |
fsck: print inode number on file read error
This makes it possible to find the file without mounting the fs.
-rw-r--r-- | fsck.go | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -11,6 +11,7 @@ import ( "syscall" "github.com/hanwen/go-fuse/fuse" + "github.com/hanwen/go-fuse/fuse/nodefs" "github.com/rfjakob/gocryptfs/internal/exitcodes" "github.com/rfjakob/gocryptfs/internal/fusefrontend" @@ -127,7 +128,7 @@ func (ck *fsckObj) file(path string) { result, status := f.Read(buf, off) if !status.Ok() { 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 } // EOF @@ -218,3 +219,9 @@ func (s sortableDirEntries) Swap(i, j int) { func (s sortableDirEntries) Less(i, j int) bool { 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 +} |