Selaa lähdekoodia

Do not calculate size for local volumes with mount

Local volumes support mount options which, when in use, can mount
external file systems. We don't really need to enumerate these external
filesystems which may be a very slow process.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Brian Goff 8 vuotta sitten
vanhempi
commit
0822d90364
1 muutettua tiedostoa jossa 7 lisäystä ja 0 poistoa
  1. 7 0
      daemon/disk_usage.go

+ 7 - 0
daemon/disk_usage.go

@@ -65,6 +65,13 @@ func (daemon *Daemon) SystemDiskUsage(ctx context.Context) (*types.DiskUsage, er
 		case <-ctx.Done():
 		case <-ctx.Done():
 			return ctx.Err()
 			return ctx.Err()
 		default:
 		default:
+			if d, ok := v.(volume.DetailedVolume); ok {
+				// skip local volumes with mount options since these could have external
+				// mounted filesystems that will be slow to enumerate.
+				if len(d.Options()) > 0 {
+					return nil
+				}
+			}
 			name := v.Name()
 			name := v.Name()
 			refs := daemon.volumes.Refs(v)
 			refs := daemon.volumes.Refs(v)