Adding a uuid into the superblock on squashfs seems to resolve the issue. Since squashfs does not have UUID support, my hack below generates one based on some squashfs superblock metadata that provides a good enough UUID for our purposes.
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index effa638d6d85..cfb34a75feb6 100644
--- a/fs/squashfs/super.c
+++ b/fs/squashfs/super.c
@@ -186,6 +186,12 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
sb->s_flags |= SB_RDONLY;
sb->s_op = &squashfs_super_ops;
Adding a uuid into the superblock on squashfs seems to resolve the issue. Since squashfs does not have UUID support, my hack below generates one based on some squashfs superblock metadata that provides a good enough UUID for our purposes.
diff --git a/fs/squashfs/ super.c b/fs/squashfs/ super.c .cfb34a75feb6 100644 super.c super.c fill_super( struct super_block *sb, void *data, int silent) super_ops;
index effa638d6d85.
--- a/fs/squashfs/
+++ b/fs/squashfs/
@@ -186,6 +186,12 @@ static int squashfs_
sb->s_flags |= SB_RDONLY;
sb->s_op = &squashfs_
+ memcpy( &sb->s_ uuid.b[ 0], &sblk->inodes, 4); &sb->s_ uuid.b[ 4], &sblk->mkfs_time, 4); &sb->s_ uuid.b[ 8], &sblk->fragments, 4); &sb->s_ uuid.b[ 12], &sblk->compression, 2); &sb->s_ uuid.b[ 14], &sblk->block_log, 2);
+ memcpy(
+ memcpy(
+ memcpy(
+ memcpy(
+
err = -ENOMEM;