[CRIU] [PATCH] mnt: add matching on fs kernel subtypes
Tycho Andersen
tycho.andersen at canonical.com
Thu Apr 9 11:54:01 PDT 2015
Signed-off-by: Tycho Andersen <tycho.andersen at canonical.com>
---
mount.c | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/mount.c b/mount.c
index fff7eb4..15d5716 100644
--- a/mount.c
+++ b/mount.c
@@ -1127,11 +1127,26 @@ struct fstype *find_fstype_by_name(char *fst)
* anything is wrong, almost every fs has its own features)
* 2nd -- save some space in the image (since we scan all
* names anyway)
+ *
+ * The kernel reports "subtypes" sometimes and the valid
+ * type-vs-subtype delimiter is the dot symbol. We disregard any
+ * subtypes for the purpose of finding the fstype.
*/
+ char fstype[1024];
- for (i = 0; i < ARRAY_SIZE(fstypes); i++)
- if (!strcmp(fstypes[i].name, fst))
+ for (i = 0; fst[i] && i < sizeof(fstype) - 1; i++) {
+ if (fst[i] == '.')
+ break;
+
+ fstype[i] = fst[i];
+ }
+
+ fstype[i] = 0;
+
+ for (i = 0; i < ARRAY_SIZE(fstypes); i++) {
+ if (!strcmp(fstypes[i].name, fstype))
return fstypes + i;
+ }
return &fstypes[0];
}
--
2.1.0
More information about the CRIU
mailing list