diff --git a/backend/amazonclouddrive/amazonclouddrive.go b/backend/amazonclouddrive/amazonclouddrive.go index 6a19fba60..2dee8a61f 100644 --- a/backend/amazonclouddrive/amazonclouddrive.go +++ b/backend/amazonclouddrive/amazonclouddrive.go @@ -273,7 +273,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e CaseInsensitive: true, ReadMimeType: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) // Renew the token in the background f.tokenRenewer = oauthutil.NewRenew(f.String(), ts, func() error { diff --git a/backend/azureblob/azureblob.go b/backend/azureblob/azureblob.go index 2de4f5e1f..096907db9 100644 --- a/backend/azureblob/azureblob.go +++ b/backend/azureblob/azureblob.go @@ -432,7 +432,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e BucketBasedRootOK: true, SetTier: true, GetTier: true, - }).Fill(f) + }).Fill(ctx, f) var ( u *url.URL diff --git a/backend/b2/b2.go b/backend/b2/b2.go index 713653372..7f2f83752 100644 --- a/backend/b2/b2.go +++ b/backend/b2/b2.go @@ -438,7 +438,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e WriteMimeType: true, BucketBased: true, BucketBasedRootOK: true, - }).Fill(f) + }).Fill(ctx, f) // Set the test flag if required if opt.TestMode != "" { testMode := strings.TrimSpace(opt.TestMode) diff --git a/backend/box/box.go b/backend/box/box.go index 6a35fbcbb..ce3b75961 100644 --- a/backend/box/box.go +++ b/backend/box/box.go @@ -407,7 +407,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.features = (&fs.Features{ CaseInsensitive: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) // If using an accessToken, set the Authorization header @@ -462,7 +462,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e } return nil, err } - f.features.Fill(&tempF) + f.features.Fill(ctx, &tempF) // XXX: update the old f here instead of returning tempF, since // `features` were already filled with functions having *f as a receiver. // See https://github.com/rclone/rclone/issues/2182 diff --git a/backend/cache/cache.go b/backend/cache/cache.go index c103daa4d..cc9c5269a 100644 --- a/backend/cache/cache.go +++ b/backend/cache/cache.go @@ -512,7 +512,7 @@ func NewFs(ctx context.Context, name, rootPath string, m configmap.Mapper) (fs.F f.features = (&fs.Features{ CanHaveEmptyDirectories: true, DuplicateFiles: false, // storage doesn't permit this - }).Fill(f).Mask(wrappedFs).WrapsFs(f, wrappedFs) + }).Fill(ctx, f).Mask(ctx, wrappedFs).WrapsFs(f, wrappedFs) // override only those features that use a temp fs and it doesn't support them //f.features.ChangeNotify = f.ChangeNotify if f.opt.TempWritePath != "" { diff --git a/backend/chunker/chunker.go b/backend/chunker/chunker.go index c489da96f..9e8868980 100644 --- a/backend/chunker/chunker.go +++ b/backend/chunker/chunker.go @@ -294,7 +294,7 @@ func NewFs(ctx context.Context, name, rpath string, m configmap.Mapper) (fs.Fs, BucketBased: true, CanHaveEmptyDirectories: true, ServerSideAcrossConfigs: true, - }).Fill(f).Mask(baseFs).WrapsFs(f, baseFs) + }).Fill(ctx, f).Mask(ctx, baseFs).WrapsFs(f, baseFs) f.features.Disable("ListR") // Recursive listing may cause chunker skip files diff --git a/backend/crypt/crypt.go b/backend/crypt/crypt.go index ec583e52d..1b10c0a0e 100644 --- a/backend/crypt/crypt.go +++ b/backend/crypt/crypt.go @@ -199,7 +199,7 @@ func NewFs(ctx context.Context, name, rpath string, m configmap.Mapper) (fs.Fs, SetTier: true, GetTier: true, ServerSideAcrossConfigs: opt.ServerSideAcrossConfigs, - }).Fill(f).Mask(wrappedFs).WrapsFs(f, wrappedFs) + }).Fill(ctx, f).Mask(ctx, wrappedFs).WrapsFs(f, wrappedFs) return f, err } diff --git a/backend/drive/drive.go b/backend/drive/drive.go index a198c373d..56b171311 100755 --- a/backend/drive/drive.go +++ b/backend/drive/drive.go @@ -953,7 +953,7 @@ func configTeamDrive(ctx context.Context, opt *Options, m configmap.Mapper, name if !config.Confirm(false) { return nil } - f, err := newFs(name, "", m) + f, err := newFs(ctx, name, "", m) if err != nil { return errors.Wrap(err, "failed to make Fs to list teamdrives") } @@ -1065,7 +1065,7 @@ func (f *Fs) setUploadCutoff(cs fs.SizeSuffix) (old fs.SizeSuffix, err error) { // // It constructs a valid Fs but doesn't attempt to figure out whether // it is a file or a directory. -func newFs(name, path string, m configmap.Mapper) (*Fs, error) { +func newFs(ctx context.Context, name, path string, m configmap.Mapper) (*Fs, error) { // Parse config into Options struct opt := new(Options) err := configstruct.Set(m, opt) @@ -1109,7 +1109,7 @@ func newFs(name, path string, m configmap.Mapper) (*Fs, error) { WriteMimeType: true, CanHaveEmptyDirectories: true, ServerSideAcrossConfigs: opt.ServerSideAcrossConfigs, - }).Fill(f) + }).Fill(ctx, f) // Create a new authorized Drive client. f.client = oAuthClient @@ -1130,7 +1130,7 @@ func newFs(name, path string, m configmap.Mapper) (*Fs, error) { // NewFs constructs an Fs from the path, container:path func NewFs(ctx context.Context, name, path string, m configmap.Mapper) (fs.Fs, error) { - f, err := newFs(name, path, m) + f, err := newFs(ctx, name, path, m) if err != nil { return nil, err } diff --git a/backend/dropbox/dropbox.go b/backend/dropbox/dropbox.go index 411387e62..161362311 100755 --- a/backend/dropbox/dropbox.go +++ b/backend/dropbox/dropbox.go @@ -414,7 +414,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.opt.SharedFolders = false } - f.features.Fill(f) + f.features.Fill(ctx, f) // If root starts with / then use the actual root if strings.HasPrefix(root, "/") { diff --git a/backend/fichier/fichier.go b/backend/fichier/fichier.go index 0f000af29..085c14dd9 100644 --- a/backend/fichier/fichier.go +++ b/backend/fichier/fichier.go @@ -193,7 +193,7 @@ func NewFs(ctx context.Context, name string, root string, config configmap.Mappe f.features = (&fs.Features{ DuplicateFiles: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) client := fshttp.NewClient(fs.Config) @@ -225,7 +225,7 @@ func NewFs(ctx context.Context, name string, root string, config configmap.Mappe } return nil, err } - f.features.Fill(&tempF) + f.features.Fill(ctx, &tempF) // XXX: update the old f here instead of returning tempF, since // `features` were already filled with functions having *f as a receiver. // See https://github.com/rclone/rclone/issues/2182 diff --git a/backend/ftp/ftp.go b/backend/ftp/ftp.go index df7d4dcf5..bfa0ee44f 100644 --- a/backend/ftp/ftp.go +++ b/backend/ftp/ftp.go @@ -339,7 +339,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (ff fs.Fs } f.features = (&fs.Features{ CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) // Make a connection and pool it to return errors early c, err := f.getFtpConnection() if err != nil { diff --git a/backend/googlecloudstorage/googlecloudstorage.go b/backend/googlecloudstorage/googlecloudstorage.go index a0cc41ce5..e4331777a 100644 --- a/backend/googlecloudstorage/googlecloudstorage.go +++ b/backend/googlecloudstorage/googlecloudstorage.go @@ -441,7 +441,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e WriteMimeType: true, BucketBased: true, BucketBasedRootOK: true, - }).Fill(f) + }).Fill(ctx, f) // Create a new authorized Drive client. f.client = oAuthClient diff --git a/backend/googlephotos/googlephotos.go b/backend/googlephotos/googlephotos.go index 603f81641..eb5285376 100644 --- a/backend/googlephotos/googlephotos.go +++ b/backend/googlephotos/googlephotos.go @@ -279,7 +279,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e } f.features = (&fs.Features{ ReadMimeType: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) _, _, pattern := patterns.match(f.root, "", true) diff --git a/backend/http/http.go b/backend/http/http.go index 1b342c84a..f7ccb269a 100644 --- a/backend/http/http.go +++ b/backend/http/http.go @@ -219,7 +219,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e } f.features = (&fs.Features{ CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) if isFile { return f, fs.ErrorIsFile } diff --git a/backend/jottacloud/jottacloud.go b/backend/jottacloud/jottacloud.go index 9bf688d63..482eb22b3 100644 --- a/backend/jottacloud/jottacloud.go +++ b/backend/jottacloud/jottacloud.go @@ -720,7 +720,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e CanHaveEmptyDirectories: true, ReadMimeType: true, WriteMimeType: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) if opt.TrashedOnly { // we cannot support showing Trashed Files when using ListR right now f.features.ListR = nil diff --git a/backend/koofr/koofr.go b/backend/koofr/koofr.go index 4775fc696..a15c6b160 100644 --- a/backend/koofr/koofr.go +++ b/backend/koofr/koofr.go @@ -287,7 +287,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (ff fs.Fs DuplicateFiles: false, BucketBased: false, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) for _, m := range mounts { if opt.MountID != "" { if m.Id == opt.MountID { diff --git a/backend/local/local.go b/backend/local/local.go index 91eb4dbae..7cb11ad45 100644 --- a/backend/local/local.go +++ b/backend/local/local.go @@ -245,7 +245,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e CanHaveEmptyDirectories: true, IsLocal: true, SlowHash: true, - }).Fill(f) + }).Fill(ctx, f) if opt.FollowSymlinks { f.lstat = os.Stat } diff --git a/backend/mailru/mailru.go b/backend/mailru/mailru.go index 9c51ac075..74d59f590 100644 --- a/backend/mailru/mailru.go +++ b/backend/mailru/mailru.go @@ -332,7 +332,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e // Can copy/move across mailru configs (almost, thus true here), but // only when they share common account (this is checked in Copy/Move). ServerSideAcrossConfigs: true, - }).Fill(f) + }).Fill(ctx, f) // Override few config settings and create a client clientConfig := *fs.Config diff --git a/backend/mega/mega.go b/backend/mega/mega.go index 91fac4ce0..0beeba0eb 100644 --- a/backend/mega/mega.go +++ b/backend/mega/mega.go @@ -233,7 +233,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.features = (&fs.Features{ DuplicateFiles: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) // Find the root node and check if it is a file or not _, err = f.findRoot(false) diff --git a/backend/memory/memory.go b/backend/memory/memory.go index 5a5c9510e..cda1c0c28 100644 --- a/backend/memory/memory.go +++ b/backend/memory/memory.go @@ -241,7 +241,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e WriteMimeType: true, BucketBased: true, BucketBasedRootOK: true, - }).Fill(f) + }).Fill(ctx, f) if f.rootBucket != "" && f.rootDirectory != "" { od := buckets.getObjectData(f.rootBucket, f.rootDirectory) if od != nil { diff --git a/backend/onedrive/onedrive.go b/backend/onedrive/onedrive.go index 1697ad6f1..915dfd9dc 100755 --- a/backend/onedrive/onedrive.go +++ b/backend/onedrive/onedrive.go @@ -633,7 +633,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e ReadMimeType: true, CanHaveEmptyDirectories: true, ServerSideAcrossConfigs: opt.ServerSideAcrossConfigs, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) // Renew the token in the background diff --git a/backend/opendrive/opendrive.go b/backend/opendrive/opendrive.go index c71e7e888..252fcb6a9 100644 --- a/backend/opendrive/opendrive.go +++ b/backend/opendrive/opendrive.go @@ -216,7 +216,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.features = (&fs.Features{ CaseInsensitive: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) // Find the current root err = f.dirCache.FindRoot(ctx, false) diff --git a/backend/pcloud/pcloud.go b/backend/pcloud/pcloud.go index f6d42dd26..a162709fd 100644 --- a/backend/pcloud/pcloud.go +++ b/backend/pcloud/pcloud.go @@ -304,7 +304,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.features = (&fs.Features{ CaseInsensitive: false, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) // Renew the token in the background diff --git a/backend/premiumizeme/premiumizeme.go b/backend/premiumizeme/premiumizeme.go index a6df563c2..99e497dd8 100644 --- a/backend/premiumizeme/premiumizeme.go +++ b/backend/premiumizeme/premiumizeme.go @@ -266,7 +266,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e CaseInsensitive: true, CanHaveEmptyDirectories: true, ReadMimeType: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) // Renew the token in the background @@ -302,7 +302,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e } return nil, err } - f.features.Fill(&tempF) + f.features.Fill(ctx, &tempF) // XXX: update the old f here instead of returning tempF, since // `features` were already filled with functions having *f as a receiver. // See https://github.com/rclone/rclone/issues/2182 diff --git a/backend/putio/fs.go b/backend/putio/fs.go index 0d2b87478..28ee2abdc 100644 --- a/backend/putio/fs.go +++ b/backend/putio/fs.go @@ -95,7 +95,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (f fs.Fs, DuplicateFiles: true, ReadMimeType: true, CanHaveEmptyDirectories: true, - }).Fill(p) + }).Fill(ctx, p) p.dirCache = dircache.New(root, "0", p) // Find the current root err = p.dirCache.FindRoot(ctx, false) diff --git a/backend/qingstor/qingstor.go b/backend/qingstor/qingstor.go index 88387db95..5e17f4cbe 100644 --- a/backend/qingstor/qingstor.go +++ b/backend/qingstor/qingstor.go @@ -357,7 +357,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e BucketBased: true, BucketBasedRootOK: true, SlowModTime: true, - }).Fill(f) + }).Fill(ctx, f) if f.rootBucket != "" && f.rootDirectory != "" { // Check to see if the object exists diff --git a/backend/s3/s3.go b/backend/s3/s3.go index 75511371f..c7d5defb8 100644 --- a/backend/s3/s3.go +++ b/backend/s3/s3.go @@ -1620,7 +1620,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e SetTier: true, GetTier: true, SlowModTime: true, - }).Fill(f) + }).Fill(ctx, f) if f.rootBucket != "" && f.rootDirectory != "" { // Check to see if the object exists encodedDirectory := f.opt.Enc.FromStandardPath(f.rootDirectory) diff --git a/backend/seafile/seafile.go b/backend/seafile/seafile.go index ee0e35668..535c4e2d6 100644 --- a/backend/seafile/seafile.go +++ b/backend/seafile/seafile.go @@ -203,7 +203,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.features = (&fs.Features{ CanHaveEmptyDirectories: true, BucketBased: opt.LibraryName == "", - }).Fill(f) + }).Fill(ctx, f) serverInfo, err := f.getServerInfo(ctx) if err != nil { diff --git a/backend/sftp/sftp.go b/backend/sftp/sftp.go index ee6a6892c..00bb3ab4e 100644 --- a/backend/sftp/sftp.go +++ b/backend/sftp/sftp.go @@ -609,7 +609,7 @@ func NewFsWithConnection(ctx context.Context, f *Fs, name string, root string, m f.features = (&fs.Features{ CanHaveEmptyDirectories: true, SlowHash: true, - }).Fill(f) + }).Fill(ctx, f) // Make a connection and pool it to return errors early c, err := f.getSftpConnection() if err != nil { diff --git a/backend/sharefile/sharefile.go b/backend/sharefile/sharefile.go index 252c8f129..e3467655c 100644 --- a/backend/sharefile/sharefile.go +++ b/backend/sharefile/sharefile.go @@ -452,7 +452,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e CaseInsensitive: true, CanHaveEmptyDirectories: true, ReadMimeType: false, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) f.fillBufferTokens() @@ -517,7 +517,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e } return nil, err } - f.features.Fill(&tempF) + f.features.Fill(ctx, &tempF) // XXX: update the old f here instead of returning tempF, since // `features` were already filled with functions having *f as a receiver. // See https://github.com/rclone/rclone/issues/2182 diff --git a/backend/sugarsync/sugarsync.go b/backend/sugarsync/sugarsync.go index de553ba2a..4521c9a45 100644 --- a/backend/sugarsync/sugarsync.go +++ b/backend/sugarsync/sugarsync.go @@ -416,7 +416,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e f.features = (&fs.Features{ CaseInsensitive: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetSigner(f.getAuth) // use signing hook to get the auth f.srv.SetErrorHandler(errorHandler) diff --git a/backend/swift/swift.go b/backend/swift/swift.go index 01f11e467..5e176dae0 100644 --- a/backend/swift/swift.go +++ b/backend/swift/swift.go @@ -448,7 +448,7 @@ func NewFsWithConnection(ctx context.Context, opt *Options, name, root string, c BucketBased: true, BucketBasedRootOK: true, SlowModTime: true, - }).Fill(f) + }).Fill(ctx, f) if f.rootContainer != "" && f.rootDirectory != "" { // Check to see if the object exists - ignoring directory markers var info swift.Object diff --git a/backend/tardigrade/fs.go b/backend/tardigrade/fs.go index 11d36189f..483eb47fd 100644 --- a/backend/tardigrade/fs.go +++ b/backend/tardigrade/fs.go @@ -217,7 +217,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (_ fs.Fs, f.features = (&fs.Features{ BucketBased: true, BucketBasedRootOK: true, - }).Fill(f) + }).Fill(ctx, f) project, err := f.connect(ctx) if err != nil { diff --git a/backend/union/union.go b/backend/union/union.go index 9dd501260..be8f941ec 100644 --- a/backend/union/union.go +++ b/backend/union/union.go @@ -833,9 +833,9 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e BucketBased: true, SetTier: true, GetTier: true, - }).Fill(f) + }).Fill(ctx, f) for _, f := range upstreams { - features = features.Mask(f) // Mask all upstream fs + features = features.Mask(ctx, f) // Mask all upstream fs } // Enable ListR when upstreams either support ListR or is local diff --git a/backend/webdav/webdav.go b/backend/webdav/webdav.go index c65625e64..bd6f2a6ee 100644 --- a/backend/webdav/webdav.go +++ b/backend/webdav/webdav.go @@ -342,7 +342,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e } f.features = (&fs.Features{ CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) if opt.User != "" || opt.Pass != "" { f.srv.SetUserPass(opt.User, opt.Pass) } else if opt.BearerToken != "" { diff --git a/backend/yandex/yandex.go b/backend/yandex/yandex.go index 52fc25a96..74bc0c85c 100644 --- a/backend/yandex/yandex.go +++ b/backend/yandex/yandex.go @@ -276,7 +276,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e ReadMimeType: true, WriteMimeType: true, CanHaveEmptyDirectories: true, - }).Fill(f) + }).Fill(ctx, f) f.srv.SetErrorHandler(errorHandler) // Check to see if the object exists and is a file diff --git a/fs/fs.go b/fs/fs.go index b53c641b9..0e03ee6c1 100644 --- a/fs/fs.go +++ b/fs/fs.go @@ -715,7 +715,7 @@ func (ft *Features) DisableList(list []string) *Features { // Fill fills in the function pointers in the Features struct from the // optional interfaces. It returns the original updated Features // struct passed in. -func (ft *Features) Fill(f Fs) *Features { +func (ft *Features) Fill(ctx context.Context, f Fs) *Features { if do, ok := f.(Purger); ok { ft.Purge = do.Purge } @@ -783,7 +783,7 @@ func (ft *Features) Fill(f Fs) *Features { // Fs AND the one passed in will be advertised. Any features which // aren't in both will be set to false/nil, except for UnWrap/Wrap which // will be left untouched. -func (ft *Features) Mask(f Fs) *Features { +func (ft *Features) Mask(ctx context.Context, f Fs) *Features { mask := f.Features() ft.CaseInsensitive = ft.CaseInsensitive && mask.CaseInsensitive ft.DuplicateFiles = ft.DuplicateFiles && mask.DuplicateFiles diff --git a/fstest/fstests/fstests.go b/fstest/fstests/fstests.go index 8a506df88..6eb5c007e 100644 --- a/fstest/fstests/fstests.go +++ b/fstest/fstests/fstests.go @@ -389,7 +389,7 @@ func Run(t *testing.T, opt *Opt) { if opt.SkipFsCheckWrap { t.Skip("Skipping FsCheckWrap on this Fs") } - ft := new(fs.Features).Fill(remote) + ft := new(fs.Features).Fill(ctx, remote) if ft.UnWrap == nil { t.Skip("Not a wrapping Fs") } @@ -1584,7 +1584,7 @@ func Run(t *testing.T, opt *Opt) { if opt.SkipObjectCheckWrap { t.Skip("Skipping FsCheckWrap on this Fs") } - ft := new(fs.Features).Fill(remote) + ft := new(fs.Features).Fill(ctx, remote) if ft.UnWrap == nil { t.Skip("Not a wrapping Fs") }