From: Ignaz Forster <iforster@suse.com>
Date: Wed Jan 14 17:57:52 2020 +0100
Upstream: Ticket opened [gh#coreos/ignition#890]

    Implement poor man's solution for mounting a device multiple times,
    e.g. to mount several subvolumes from a Btrfs device or bind mounting
    the device to multiple places, by also adding the path to the key.

Index: ignition-2.16.2/config/v3_1/types/filesystem.go
===================================================================
--- ignition-2.16.2.orig/config/v3_1/types/filesystem.go
+++ ignition-2.16.2/config/v3_1/types/filesystem.go
@@ -23,6 +23,9 @@ import (
 )
 
 func (f Filesystem) Key() string {
+ 	if (f.Path != nil) {
+ 		return f.Device + *f.Path
+ 	}
 	return f.Device
 }
 
Index: ignition-2.16.2/config/v3_2/types/filesystem.go
===================================================================
--- ignition-2.16.2.orig/config/v3_2/types/filesystem.go
+++ ignition-2.16.2/config/v3_2/types/filesystem.go
@@ -23,6 +23,9 @@ import (
 )
 
 func (f Filesystem) Key() string {
+ 	if (f.Path != nil) {
+ 		return f.Device + *f.Path
+ 	}
 	return f.Device
 }
 
Index: ignition-2.16.2/config/v3_3/types/filesystem.go
===================================================================
--- ignition-2.16.2.orig/config/v3_3/types/filesystem.go
+++ ignition-2.16.2/config/v3_3/types/filesystem.go
@@ -23,6 +23,9 @@ import (
 )
 
 func (f Filesystem) Key() string {
+ 	if (f.Path != nil) {
+ 		return f.Device + *f.Path
+ 	}
 	return f.Device
 }
 
Index: ignition-2.16.2/config/v3_4/types/filesystem.go
===================================================================
--- ignition-2.16.2.orig/config/v3_4/types/filesystem.go
+++ ignition-2.16.2/config/v3_4/types/filesystem.go
@@ -23,6 +23,9 @@ import (
 )
 
 func (f Filesystem) Key() string {
+ 	if (f.Path != nil) {
+ 		return f.Device + *f.Path
+ 	}
 	return f.Device
 }
 
Index: ignition-2.16.2/config/v3_5_experimental/types/filesystem.go
===================================================================
--- ignition-2.16.2.orig/config/v3_5_experimental/types/filesystem.go
+++ ignition-2.16.2/config/v3_5_experimental/types/filesystem.go
@@ -23,6 +23,9 @@ import (
 )
 
 func (f Filesystem) Key() string {
+ 	if (f.Path != nil) {
+ 		return f.Device + *f.Path
+ 	}
 	return f.Device
 }