func SupportsQuotas(m mount.Interface, path string) (bool, error) {
	if !enabledQuotasForMonitoring() {
		klog.V(3).Info("SupportsQuotas called, but quotas disabled")
		return false, nil
	}
	supportsQuotasLock.Lock()
	defer supportsQuotasLock.Unlock()
	if supportsQuotas, ok := supportsQuotasMap[path]; ok {
		return supportsQuotas, nil
	}
	mount, dev, err := getFSInfo(m, path)
	if err != nil {
		return false, err
	}
	// Do we know about this device?
	applier, ok := devApplierMap[mount]
	if !ok {
		for _, provider := range providers {
			if applier = provider.GetQuotaApplier(mount, dev); applier != nil {
				devApplierMap[mount] = applier
				break
			}
		}
	}
	if applier != nil {
		supportsQuotasMap[path] = true
		setApplier(path, applier)
		return true, nil
	}
	delete(backingDevMap, path)
	delete(mountpointMap, path)
	return false, nil
}
// SupportsQuotas -- Does the path support quotas
// Cache the applier for paths that support quotas.  For paths that don't,
// don't cache the result because nothing will clean it up.
// However, do cache the device->applier map; the number of devices
// is bounded.
- Does the path support quotas
Cache the applier for paths that support quotas.  For paths that don't,
don't cache the result because nothing will clean it up.
However, do cache the device->applier map; the number of devices
is bounded.
// SupportsQuotas -- Does the path support quotas // Cache the applier for paths that support quotas . For paths that don ' t // don ' t cache the result because nothing will clean it up . // However do cache the device - > applier map ; the number of devices // is bounded .
func SupportsQuotas(m mount.Interface, path string) (bool, error) {
	if !enabledQuotasForMonitoring() {
		klog.V(3).Info("SupportsQuotas called, but quotas disabled")
		return false, nil
	}
	supportsQuotasLock.Lock()
	defer supportsQuotasLock.Unlock()
	if supportsQuotas, ok := supportsQuotasMap[path]; ok {
		return supportsQuotas, nil
	}
	mount, dev, err := getFSInfo(m, path)
	if err != nil {
		return false, err
	}
	applier, ok := devApplierMap[mount]
	if !ok {
		for _, provider := range providers {
			if applier = provider.GetQuotaApplier(mount, dev); applier != nil {
				devApplierMap[mount] = applier
				break
			}
		}
	}
	if applier != nil {
		supportsQuotasMap[path] = true
		setApplier(path, applier)
		return true, nil
	}
	delete(backingDevMap, path)
	delete(mountpointMap, path)
	return false, nil
}
func SupportsQuotas ( m mount . Interface , path string ) ( bool , error ) { if ! enabledQuotasForMonitoring ( ) { klog . V ( 3 ) . Info ( " " ) return false , nil } supportsQuotasLock . Lock ( ) defer supportsQuotasLock . Unlock ( ) if supportsQuotas , ok := supportsQuotasMap [ path ] ; ok { return supportsQuotas , nil } mount , dev , err := getFSInfo ( m , path ) if err != nil { return false , err } applier , ok := devApplierMap [ mount ] if ! ok { for _ , provider := range providers { if applier = provider . GetQuotaApplier ( mount , dev ) ; applier != nil { devApplierMap [ mount ] = applier break } } } if applier != nil { supportsQuotasMap [ path ] = true setApplier ( path , applier ) return true , nil } delete ( backingDevMap , path ) delete ( mountpointMap , path ) return false , nil }
Does the path support quotas
Cache the applier for paths that support quotas.
Does the path support quotas Cache the applier for paths that support quotas .
// Do we know about this device?