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.
This commit is contained in:
Jakob Unterwurzacher 2017-05-03 23:46:52 +02:00
parent b32fc212af
commit c52e1abc58
1 changed files with 6 additions and 0 deletions

View File

@ -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)
}