From 7b6a26ffeb654850658e93d952f6c5506c423e6d Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Sun, 22 Apr 2012 18:51:41 -0700 Subject: [PATCH] localdisk: fix TODO which resulted in a race/crash. Change-Id: I7ff0be046c07e5fd33c861afd10b5e725066a033 --- pkg/blobserver/localdisk/receive.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/blobserver/localdisk/receive.go b/pkg/blobserver/localdisk/receive.go index 4a8e5c031..bec4e70f1 100644 --- a/pkg/blobserver/localdisk/receive.go +++ b/pkg/blobserver/localdisk/receive.go @@ -131,7 +131,11 @@ func (ds *DiskStorage) ReceiveBlob(blobRef *blobref.BlobRef, source io.Reader) ( } func linkAlreadyExists(err error) bool { - le, ok := err.(*os.LinkError) - // TODO(bradfitz): GO1 not tested; is this ErrExist or syscall.EEXIST? - return ok && le.Op == "link" && le.Err == os.ErrExist + if os.IsExist(err) { + return true + } + if le, ok := err.(*os.LinkError); ok && os.IsExist(le.Err) { + return true + } + return false }