diff --git a/provisioner.go b/provisioner.go
index 66c799f2f70e2f1e5e60ac09cddfa4ba50d0abf2..c5812d6a7001e7e626fd14723e085d636d7861fe 100644
--- a/provisioner.go
+++ b/provisioner.go
@@ -230,6 +230,7 @@ func (p *LocalPathProvisioner) isSharedFilesystem() (bool, error) {
 func (p *LocalPathProvisioner) Provision(ctx context.Context, opts pvController.ProvisionOptions) (*v1.PersistentVolume, pvController.ProvisioningState, error) {
 	pvc := opts.PVC
 	node := opts.SelectedNode
+	storageClass := opts.StorageClass
 	sharedFS, err := p.isSharedFilesystem()
 	if err != nil {
 		return nil, pvController.ProvisioningFinished, err
@@ -253,7 +254,13 @@ func (p *LocalPathProvisioner) Provision(ctx context.Context, opts pvController.
 		// This clause works only with sharedFS
 		nodeName = node.Name
 	}
-	basePath, err := p.getRandomPathOnNode(nodeName)
+	var basePath string
+	basePath, err = p.getRandomPathOnNode(nodeName)
+	if storageClass.Parameters != nil {
+		if _, ok := storageClass.Parameters["path"]; ok {
+			basePath = storageClass.Parameters["path"]
+		}
+	}
 	if err != nil {
 		return nil, pvController.ProvisioningFinished, err
 	}