//go:build linux package state import ( "errors" "os" "syscall" ) func lockExclusive(f *os.File) error { err := syscall.Flock(int(f.Fd()), syscall.LOCK_EX|syscall.LOCK_NB) if errors.Is(err, syscall.EWOULDBLOCK) || errors.Is(err, syscall.EAGAIN) { return ErrBusy } return err } func syncDirectory(r *os.Root) error { f, err := r.Open(".") if err != nil { return err } defer f.Close() return f.Sync() }