fusefrontend: log "too many open files" errors

This usually indicates that the open file limit for gocryptfs is
too low. We should report this to the user.
libgocryptfs
Jakob Unterwurzacher 6 years ago
parent b32fc212af
commit c52e1abc58
  1. 6
      internal/fusefrontend/fs.go

@ -108,6 +108,12 @@ func (fs *FS) Open(path string, flags uint32, context *fuse.Context) (fuseFile n
tlog.Debug.Printf("Open: %s", cPath)
f, err := os.OpenFile(cPath, newFlags, 0666)
if err != nil {
err2 := err.(*os.PathError)
if err2.Err == syscall.EMFILE {
var lim syscall.Rlimit
syscall.Getrlimit(syscall.RLIMIT_NOFILE, &lim)
tlog.Warn.Printf("Open %q: too many open files. Current \"ulimit -n\": %d", cPath, lim.Cur)
}
return nil, fuse.ToStatus(err)
}

Loading…
Cancel
Save