From 0c9efa9c2aa26ef7e92251de761a00e6718c5fb9 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sun, 9 Aug 2020 13:24:47 +0200 Subject: [PATCH] Pass context to lockRepo --- cmd/restic/cmd_backup.go | 2 +- cmd/restic/cmd_cat.go | 2 +- cmd/restic/cmd_check.go | 2 +- cmd/restic/cmd_copy.go | 4 ++-- cmd/restic/cmd_debug.go | 2 +- cmd/restic/cmd_diff.go | 2 +- cmd/restic/cmd_dump.go | 2 +- cmd/restic/cmd_find.go | 2 +- cmd/restic/cmd_forget.go | 2 +- cmd/restic/cmd_key.go | 8 ++++---- cmd/restic/cmd_list.go | 2 +- cmd/restic/cmd_migrate.go | 2 +- cmd/restic/cmd_mount.go | 2 +- cmd/restic/cmd_prune.go | 2 +- cmd/restic/cmd_rebuild_index.go | 2 +- cmd/restic/cmd_recover.go | 2 +- cmd/restic/cmd_restore.go | 2 +- cmd/restic/cmd_snapshots.go | 2 +- cmd/restic/cmd_stats.go | 2 +- cmd/restic/cmd_tag.go | 2 +- cmd/restic/lock.go | 12 ++++++------ 21 files changed, 30 insertions(+), 30 deletions(-) diff --git a/cmd/restic/cmd_backup.go b/cmd/restic/cmd_backup.go index fd138888c..a43c5a17a 100644 --- a/cmd/restic/cmd_backup.go +++ b/cmd/restic/cmd_backup.go @@ -496,7 +496,7 @@ func runBackup(opts BackupOptions, gopts GlobalOptions, term *termstatus.Termina if !gopts.JSON { p.V("lock repository") } - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_cat.go b/cmd/restic/cmd_cat.go index 281ed875f..ff240572f 100644 --- a/cmd/restic/cmd_cat.go +++ b/cmd/restic/cmd_cat.go @@ -42,7 +42,7 @@ func runCat(gopts GlobalOptions, args []string) error { return err } - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_check.go b/cmd/restic/cmd_check.go index 3c638ff5a..a4553b3c9 100644 --- a/cmd/restic/cmd_check.go +++ b/cmd/restic/cmd_check.go @@ -158,7 +158,7 @@ func runCheck(opts CheckOptions, gopts GlobalOptions, args []string) error { if !gopts.NoLock { Verbosef("create exclusive lock for repository\n") - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_copy.go b/cmd/restic/cmd_copy.go index 788c9a7e8..7c37b61e0 100644 --- a/cmd/restic/cmd_copy.go +++ b/cmd/restic/cmd_copy.go @@ -65,13 +65,13 @@ func runCopy(opts CopyOptions, gopts GlobalOptions, args []string) error { return err } - srcLock, err := lockRepo(srcRepo) + srcLock, err := lockRepo(ctx, srcRepo) defer unlockRepo(srcLock) if err != nil { return err } - dstLock, err := lockRepo(dstRepo) + dstLock, err := lockRepo(ctx, dstRepo) defer unlockRepo(dstLock) if err != nil { return err diff --git a/cmd/restic/cmd_debug.go b/cmd/restic/cmd_debug.go index 4c2eb5ec6..c242d0a25 100644 --- a/cmd/restic/cmd_debug.go +++ b/cmd/restic/cmd_debug.go @@ -134,7 +134,7 @@ func runDebugDump(gopts GlobalOptions, args []string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_diff.go b/cmd/restic/cmd_diff.go index a4873319f..f1b099ede 100644 --- a/cmd/restic/cmd_diff.go +++ b/cmd/restic/cmd_diff.go @@ -332,7 +332,7 @@ func runDiff(opts DiffOptions, gopts GlobalOptions, args []string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_dump.go b/cmd/restic/cmd_dump.go index b33863c4f..d3ca87923 100644 --- a/cmd/restic/cmd_dump.go +++ b/cmd/restic/cmd_dump.go @@ -140,7 +140,7 @@ func runDump(opts DumpOptions, gopts GlobalOptions, args []string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_find.go b/cmd/restic/cmd_find.go index 84a709b15..c57207c1f 100644 --- a/cmd/restic/cmd_find.go +++ b/cmd/restic/cmd_find.go @@ -529,7 +529,7 @@ func runFind(opts FindOptions, gopts GlobalOptions, args []string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_forget.go b/cmd/restic/cmd_forget.go index d2cc85075..3edaa76e9 100644 --- a/cmd/restic/cmd_forget.go +++ b/cmd/restic/cmd_forget.go @@ -88,7 +88,7 @@ func runForget(opts ForgetOptions, gopts GlobalOptions, args []string) error { return err } - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_key.go b/cmd/restic/cmd_key.go index 8a54d83e8..bbd4f0f90 100644 --- a/cmd/restic/cmd_key.go +++ b/cmd/restic/cmd_key.go @@ -188,7 +188,7 @@ func runKey(gopts GlobalOptions, args []string) error { switch args[0] { case "list": - lock, err := lockRepo(repo) + lock, err := lockRepo(ctx, repo) defer unlockRepo(lock) if err != nil { return err @@ -196,7 +196,7 @@ func runKey(gopts GlobalOptions, args []string) error { return listKeys(ctx, repo, gopts) case "add": - lock, err := lockRepo(repo) + lock, err := lockRepo(ctx, repo) defer unlockRepo(lock) if err != nil { return err @@ -204,7 +204,7 @@ func runKey(gopts GlobalOptions, args []string) error { return addKey(gopts, repo) case "remove": - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(ctx, repo) defer unlockRepo(lock) if err != nil { return err @@ -217,7 +217,7 @@ func runKey(gopts GlobalOptions, args []string) error { return deleteKey(gopts.ctx, repo, id) case "passwd": - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_list.go b/cmd/restic/cmd_list.go index 3cde6714d..50b55e857 100644 --- a/cmd/restic/cmd_list.go +++ b/cmd/restic/cmd_list.go @@ -40,7 +40,7 @@ func runList(cmd *cobra.Command, opts GlobalOptions, args []string) error { } if !opts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(opts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_migrate.go b/cmd/restic/cmd_migrate.go index 887641957..4af98005e 100644 --- a/cmd/restic/cmd_migrate.go +++ b/cmd/restic/cmd_migrate.go @@ -99,7 +99,7 @@ func runMigrate(opts MigrateOptions, gopts GlobalOptions, args []string) error { return err } - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_mount.go b/cmd/restic/cmd_mount.go index 626915dfe..820f68949 100644 --- a/cmd/restic/cmd_mount.go +++ b/cmd/restic/cmd_mount.go @@ -91,7 +91,7 @@ func mount(opts MountOptions, gopts GlobalOptions, mountpoint string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_prune.go b/cmd/restic/cmd_prune.go index 2a386793c..1bb1a51e5 100644 --- a/cmd/restic/cmd_prune.go +++ b/cmd/restic/cmd_prune.go @@ -50,7 +50,7 @@ func runPrune(gopts GlobalOptions) error { return err } - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_rebuild_index.go b/cmd/restic/cmd_rebuild_index.go index b5f23aad7..87b78b4b4 100644 --- a/cmd/restic/cmd_rebuild_index.go +++ b/cmd/restic/cmd_rebuild_index.go @@ -38,7 +38,7 @@ func runRebuildIndex(gopts GlobalOptions) error { return err } - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_recover.go b/cmd/restic/cmd_recover.go index 9eca92115..8f11b6860 100644 --- a/cmd/restic/cmd_recover.go +++ b/cmd/restic/cmd_recover.go @@ -43,7 +43,7 @@ func runRecover(gopts GlobalOptions) error { return err } - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_restore.go b/cmd/restic/cmd_restore.go index 2ab7916f5..618dfadf8 100644 --- a/cmd/restic/cmd_restore.go +++ b/cmd/restic/cmd_restore.go @@ -102,7 +102,7 @@ func runRestore(opts RestoreOptions, gopts GlobalOptions, args []string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_snapshots.go b/cmd/restic/cmd_snapshots.go index cc58479c2..8bc5d5984 100644 --- a/cmd/restic/cmd_snapshots.go +++ b/cmd/restic/cmd_snapshots.go @@ -61,7 +61,7 @@ func runSnapshots(opts SnapshotOptions, gopts GlobalOptions, args []string) erro } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_stats.go b/cmd/restic/cmd_stats.go index f26d5a6cc..81ec66843 100644 --- a/cmd/restic/cmd_stats.go +++ b/cmd/restic/cmd_stats.go @@ -91,7 +91,7 @@ func runStats(gopts GlobalOptions, args []string) error { } if !gopts.NoLock { - lock, err := lockRepo(repo) + lock, err := lockRepo(ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/cmd_tag.go b/cmd/restic/cmd_tag.go index 4479f6894..4e1ac46c3 100644 --- a/cmd/restic/cmd_tag.go +++ b/cmd/restic/cmd_tag.go @@ -119,7 +119,7 @@ func runTag(opts TagOptions, gopts GlobalOptions, args []string) error { if !gopts.NoLock { Verbosef("create exclusive lock for repository\n") - lock, err := lockRepoExclusive(repo) + lock, err := lockRepoExclusive(gopts.ctx, repo) defer unlockRepo(lock) if err != nil { return err diff --git a/cmd/restic/lock.go b/cmd/restic/lock.go index 2b4ac94d5..ad5ac6841 100644 --- a/cmd/restic/lock.go +++ b/cmd/restic/lock.go @@ -18,21 +18,21 @@ var globalLocks struct { sync.Mutex } -func lockRepo(repo *repository.Repository) (*restic.Lock, error) { - return lockRepository(repo, false) +func lockRepo(ctx context.Context, repo *repository.Repository) (*restic.Lock, error) { + return lockRepository(ctx, repo, false) } -func lockRepoExclusive(repo *repository.Repository) (*restic.Lock, error) { - return lockRepository(repo, true) +func lockRepoExclusive(ctx context.Context, repo *repository.Repository) (*restic.Lock, error) { + return lockRepository(ctx, repo, true) } -func lockRepository(repo *repository.Repository, exclusive bool) (*restic.Lock, error) { +func lockRepository(ctx context.Context, repo *repository.Repository, exclusive bool) (*restic.Lock, error) { lockFn := restic.NewLock if exclusive { lockFn = restic.NewExclusiveLock } - lock, err := lockFn(context.TODO(), repo) + lock, err := lockFn(ctx, repo) if err != nil { return nil, errors.WithMessage(err, "unable to create lock in backend") }