diff options
Diffstat (limited to 'internal/fusefrontend_reverse')
| -rw-r--r-- | internal/fusefrontend_reverse/root_node.go | 17 | 
1 files changed, 11 insertions, 6 deletions
| diff --git a/internal/fusefrontend_reverse/root_node.go b/internal/fusefrontend_reverse/root_node.go index d4c1e37..e15ddb0 100644 --- a/internal/fusefrontend_reverse/root_node.go +++ b/internal/fusefrontend_reverse/root_node.go @@ -2,10 +2,13 @@ package fusefrontend_reverse  import (  	"log" +	"os"  	"path/filepath"  	"strings"  	"syscall" +	"github.com/rfjakob/gocryptfs/v2/internal/exitcodes" +  	"github.com/rfjakob/gocryptfs/v2/internal/tlog"  	"golang.org/x/sys/unix" @@ -46,12 +49,14 @@ type RootNode struct {  // ReverseFS provides an encrypted view.  func NewRootNode(args fusefrontend.Args, c *contentenc.ContentEnc, n *nametransform.NameTransform) *RootNode {  	var rootDev uint64 -	if args.OneFileSystem { -		var st syscall.Stat_t -		err := syscall.Stat(args.Cipherdir, &st) -		if err != nil { -			log.Panicf("Could not stat backing directory %q: %v", args.Cipherdir, err) +	var st syscall.Stat_t +	if err := syscall.Stat(args.Cipherdir, &st); err != nil { +		tlog.Warn.Printf("Could not stat backing directory %q: %v", args.Cipherdir, err) +		if args.OneFileSystem { +			tlog.Fatal.Printf("This is a fatal error in combination with -one-file-system") +			os.Exit(exitcodes.CipherDir)  		} +	} else {  		rootDev = uint64(st.Dev)  	} @@ -59,7 +64,7 @@ func NewRootNode(args fusefrontend.Args, c *contentenc.ContentEnc, n *nametransf  		args:          args,  		nameTransform: n,  		contentEnc:    c, -		inoMap:        inomap.New(), +		inoMap:        inomap.New(rootDev),  		rootDev:       rootDev,  	}  	if len(args.Exclude) > 0 || len(args.ExcludeWildcard) > 0 || len(args.ExcludeFrom) > 0 { | 
