Date: Mon, 5 Jul 2021 15:17:54 GMT From: Jessica Clarke <jrtc27@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: af433832f752 - main - geom_label: Remove an old sysinstall(8) workaround Message-ID: <202107051517.165FHsfD012512@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=af433832f7520840c22edd1fe1266c1a5cb781ad commit af433832f7520840c22edd1fe1266c1a5cb781ad Author: Jessica Clarke <jrtc27@FreeBSD.org> AuthorDate: 2021-07-05 15:15:32 +0000 Commit: Jessica Clarke <jrtc27@FreeBSD.org> CommitDate: 2021-07-05 15:15:32 +0000 geom_label: Remove an old sysinstall(8) workaround We removed sysinstall(8) back in 2011, so this workaround should be long since unnecessary. This workaround can end up breaking cases that are hit in the real world, such as dd'ing a small pre-built disk image to a large partition that you intend to grow on first boot and uses a UFS disk label for / in its /etc/fstab (as the only reliable thing a raw UFS image can reference). Reviewed by: imp, mckusick Differential Revision: https://reviews.freebsd.org/D30825 --- sys/geom/label/g_label_ufs.c | 35 +++++------------------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/sys/geom/label/g_label_ufs.c b/sys/geom/label/g_label_ufs.c index ababbaa4b43a..70d59488d7b6 100644 --- a/sys/geom/label/g_label_ufs.c +++ b/sys/geom/label/g_label_ufs.c @@ -49,19 +49,8 @@ __FBSDID("$FreeBSD$"); #define G_LABEL_UFS_ID 1 /* - * G_LABEL_UFS_CMP returns true if difference between provider mediasize - * and filesystem size is less than G_LABEL_UFS_MAXDIFF sectors - */ -#define G_LABEL_UFS_CMP(prov, fsys, size) \ - ( abs( ((fsys)->size) - ( (prov)->mediasize / (fsys)->fs_fsize )) \ - < G_LABEL_UFS_MAXDIFF ) -#define G_LABEL_UFS_MAXDIFF 0x100 - -/* - * Try to find a superblock on the provider. If successful, then - * check that the size in the superblock corresponds to the size - * of the underlying provider. Finally, look for a volume label - * and create an appropriate provider based on that. + * Try to find a superblock on the provider. If successful, look for a volume + * label and create an appropriate provider based on that. */ static void g_label_ufs_taste_common(struct g_consumer *cp, char *label, size_t size, int what) @@ -81,24 +70,10 @@ g_label_ufs_taste_common(struct g_consumer *cp, char *label, size_t size, int wh return; } - /* - * Check for magic. We also need to check if file system size - * is almost equal to providers size, because sysinstall(8) - * used to bogusly put first partition at offset 0 - * instead of 16, and glabel/ufs would find file system on slice - * instead of partition. - * - * In addition, media size can be a bit bigger than file system - * size. For instance, mkuzip can append bytes to align data - * to large sector size (it improves compression rates). - */ - if (fs->fs_magic == FS_UFS1_MAGIC && fs->fs_fsize > 0 && - ( G_LABEL_UFS_CMP(pp, fs, fs_old_size) - || G_LABEL_UFS_CMP(pp, fs, fs_providersize))) { + /* Check for magic. */ + if (fs->fs_magic == FS_UFS1_MAGIC && fs->fs_fsize > 0) { /* Valid UFS1. */ - } else if (fs->fs_magic == FS_UFS2_MAGIC && fs->fs_fsize > 0 && - ( G_LABEL_UFS_CMP(pp, fs, fs_size) - || G_LABEL_UFS_CMP(pp, fs, fs_providersize))) { + } else if (fs->fs_magic == FS_UFS2_MAGIC && fs->fs_fsize > 0) { /* Valid UFS2. */ } else { goto out;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202107051517.165FHsfD012512>