Merge pull request #1621 from kolyshkin/govet
ci: enable govet and gosimple linters, fix found bugs
This commit is contained in:
commit
3a452d12bb
|
|
@ -6,6 +6,4 @@ run:
|
||||||
linters:
|
linters:
|
||||||
disable:
|
disable:
|
||||||
- errcheck
|
- errcheck
|
||||||
- gosimple
|
|
||||||
- govet
|
|
||||||
- staticcheck
|
- staticcheck
|
||||||
|
|
|
||||||
|
|
@ -181,7 +181,7 @@ func getMountProgramFlagFile(path string) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkSupportVolatile(home, runhome string) (bool, error) {
|
func checkSupportVolatile(home, runhome string) (bool, error) {
|
||||||
feature := fmt.Sprintf("volatile")
|
const feature = "volatile"
|
||||||
volatileCacheResult, _, err := cachedFeatureCheck(runhome, feature)
|
volatileCacheResult, _, err := cachedFeatureCheck(runhome, feature)
|
||||||
var usingVolatile bool
|
var usingVolatile bool
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|
|
||||||
|
|
@ -345,8 +345,7 @@ func RemoveDeviceDeferred(name string) error {
|
||||||
// disable udev dm rules and delete the symlink under /dev/mapper by itself,
|
// disable udev dm rules and delete the symlink under /dev/mapper by itself,
|
||||||
// even if the removal is deferred by the kernel.
|
// even if the removal is deferred by the kernel.
|
||||||
cookie := new(uint)
|
cookie := new(uint)
|
||||||
var flags uint16
|
flags := uint16(DmUdevDisableLibraryFallback)
|
||||||
flags = DmUdevDisableLibraryFallback
|
|
||||||
if err := task.setCookie(cookie, flags); err != nil {
|
if err := task.setCookie(cookie, flags); err != nil {
|
||||||
return fmt.Errorf("devicemapper: Can not set cookie: %s", err)
|
return fmt.Errorf("devicemapper: Can not set cookie: %s", err)
|
||||||
}
|
}
|
||||||
|
|
@ -384,7 +383,7 @@ func CancelDeferredRemove(deviceName string) error {
|
||||||
return fmt.Errorf("devicemapper: Can't set sector %s", err)
|
return fmt.Errorf("devicemapper: Can't set sector %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := task.setMessage(fmt.Sprintf("@cancel_deferred_remove")); err != nil {
|
if err := task.setMessage("@cancel_deferred_remove"); err != nil {
|
||||||
return fmt.Errorf("devicemapper: Can't set message %s", err)
|
return fmt.Errorf("devicemapper: Can't set message %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -459,8 +458,7 @@ func CreatePool(poolName string, dataFile, metadataFile *os.File, poolBlockSize
|
||||||
}
|
}
|
||||||
|
|
||||||
cookie := new(uint)
|
cookie := new(uint)
|
||||||
var flags uint16
|
flags := uint16(DmUdevDisableSubsystemRulesFlag | DmUdevDisableDiskRulesFlag | DmUdevDisableOtherRulesFlag)
|
||||||
flags = DmUdevDisableSubsystemRulesFlag | DmUdevDisableDiskRulesFlag | DmUdevDisableOtherRulesFlag
|
|
||||||
if err := task.setCookie(cookie, flags); err != nil {
|
if err := task.setCookie(cookie, flags); err != nil {
|
||||||
return fmt.Errorf("devicemapper: Can't set cookie %s", err)
|
return fmt.Errorf("devicemapper: Can't set cookie %s", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -156,12 +156,11 @@ func dmTaskGetDepsFct(task *cdmTask) *Deps {
|
||||||
}
|
}
|
||||||
|
|
||||||
// golang issue: https://github.com/golang/go/issues/11925
|
// golang issue: https://github.com/golang/go/issues/11925
|
||||||
hdr := reflect.SliceHeader{
|
var devices []C.uint64_t
|
||||||
Data: uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps))),
|
devicesHdr := (*reflect.SliceHeader)(unsafe.Pointer(&devices))
|
||||||
Len: int(Cdeps.count),
|
devicesHdr.Data = uintptr(unsafe.Pointer(uintptr(unsafe.Pointer(Cdeps)) + unsafe.Sizeof(*Cdeps)))
|
||||||
Cap: int(Cdeps.count),
|
devicesHdr.Len = int(Cdeps.count)
|
||||||
}
|
devicesHdr.Cap = int(Cdeps.count)
|
||||||
devices := *(*[]C.uint64_t)(unsafe.Pointer(&hdr))
|
|
||||||
|
|
||||||
deps := &Deps{
|
deps := &Deps{
|
||||||
Count: uint32(Cdeps.count),
|
Count: uint32(Cdeps.count),
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,8 @@ func (p *perpetualReader) Read(buf []byte) (n int, err error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCancelReadCloser(t *testing.T) {
|
func TestCancelReadCloser(t *testing.T) {
|
||||||
ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
ctx, cancel := context.WithTimeout(context.Background(), 100*time.Millisecond)
|
||||||
|
defer cancel()
|
||||||
cancelReadCloser := NewCancelReadCloser(ctx, io.NopCloser(&perpetualReader{}))
|
cancelReadCloser := NewCancelReadCloser(ctx, io.NopCloser(&perpetualReader{}))
|
||||||
for {
|
for {
|
||||||
var buf [128]byte
|
var buf [128]byte
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import (
|
||||||
// of apps that want to use global regex variables. This library initializes them on
|
// of apps that want to use global regex variables. This library initializes them on
|
||||||
// first use as opposed to the start of the executable.
|
// first use as opposed to the start of the executable.
|
||||||
type Regexp struct {
|
type Regexp struct {
|
||||||
once sync.Once
|
once *sync.Once
|
||||||
regexp *regexp.Regexp
|
regexp *regexp.Regexp
|
||||||
val string
|
val string
|
||||||
}
|
}
|
||||||
|
|
@ -22,7 +22,10 @@ func Delayed(val string) Regexp {
|
||||||
}
|
}
|
||||||
if precompile {
|
if precompile {
|
||||||
re.regexp = regexp.MustCompile(re.val)
|
re.regexp = regexp.MustCompile(re.val)
|
||||||
|
} else {
|
||||||
|
re.once = &sync.Once{}
|
||||||
}
|
}
|
||||||
|
|
||||||
return re
|
return re
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue