summaryrefslogtreecommitdiff
path: root/debian/patches/sutils-multiple-none.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/sutils-multiple-none.patch')
-rw-r--r--debian/patches/sutils-multiple-none.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/debian/patches/sutils-multiple-none.patch b/debian/patches/sutils-multiple-none.patch
new file mode 100644
index 00000000..c787b5a7
--- /dev/null
+++ b/debian/patches/sutils-multiple-none.patch
@@ -0,0 +1,40 @@
+Previously it was not possible to add two mount entries with the same
+device information to an fstab structure. This is easily fixed by
+breaking the assumption, that there is only one possible mount entry
+for the "none" device as used by many purely virtual file systems.
+
+* utils/fstab.c (fstab_find_device): Return NULL if name is "none".
+---
+ sutils/fstab.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/sutils/fstab.c b/sutils/fstab.c
+index e241de6..d3b8b6f 100644
+--- a/sutils/fstab.c
++++ b/sutils/fstab.c
+@@ -457,11 +457,19 @@ fs_remount (struct fs *fs)
+ return err;
+ }
+
+-/* Returns the FS entry in FSTAB with the device field NAME (there can only
+- be one such entry). */
++/* Returns the FS entry in FSTAB with the device field NAME.
++
++ In general there can only be one such entry. This holds not true
++ for virtual file systems that use "none" as device name.
++
++ If name is "none", NULL is returned. This also makes it possible to
++ add more than one entry for the device "none". */
+ inline struct fs *
+ fstab_find_device (const struct fstab *fstab, const char *name)
+ {
++ if (strcmp (name, "none") == 0)
++ return NULL;
++
+ struct fs *fs;
+ for (fs = fstab->entries; fs; fs = fs->next)
+ if (strcmp (fs->mntent.mnt_fsname, name) == 0)
+--
+1.7.10.4
+
+