svn commit: r362559 - in head: lib/libufs sbin/fsck_ffs

Kirk McKusick mckusick at FreeBSD.org
Tue Jun 23 21:28:27 UTC 2020


Author: mckusick
Date: Tue Jun 23 21:28:26 2020
New Revision: 362559
URL: https://svnweb.freebsd.org/changeset/base/362559

Log:
  The libufs library needs to track and free the new fs_si structure
  in addition to the fs_csp structure that it references.
  
  PR:           247425
  Sponsored by: Netflix

Modified:
  head/lib/libufs/libufs.h
  head/lib/libufs/sblock.c
  head/lib/libufs/type.c
  head/sbin/fsck_ffs/setup.c

Modified: head/lib/libufs/libufs.h
==============================================================================
--- head/lib/libufs/libufs.h	Tue Jun 23 21:17:13 2020	(r362558)
+++ head/lib/libufs/libufs.h	Tue Jun 23 21:28:26 2020	(r362559)
@@ -49,7 +49,7 @@ struct uufsd {
 	int d_fd;			/* raw device file descriptor */
 	long d_bsize;			/* device bsize */
 	ufs2_daddr_t d_sblock;		/* superblock location */
-	struct csum *d_sbcsum;		/* Superblock summary info */
+	struct fs_summary_info *d_si;	/* Superblock summary info */
 	caddr_t d_inoblock;		/* inode block */
 	uint32_t d_inomin;		/* low ino, not ino_t for ABI compat */
 	uint32_t d_inomax;		/* high ino, not ino_t for ABI compat */

Modified: head/lib/libufs/sblock.c
==============================================================================
--- head/lib/libufs/sblock.c	Tue Jun 23 21:17:13 2020	(r362558)
+++ head/lib/libufs/sblock.c	Tue Jun 23 21:28:26 2020	(r362559)
@@ -88,7 +88,7 @@ sbread(struct uufsd *disk)
 		disk->d_ufs = 2;
 	disk->d_bsize = fs->fs_fsize / fsbtodb(fs, 1);
 	disk->d_sblock = fs->fs_sblockloc / disk->d_bsize;
-	disk->d_sbcsum = fs->fs_csp;
+	disk->d_si = fs->fs_si;
 	return (0);
 }
 

Modified: head/lib/libufs/type.c
==============================================================================
--- head/lib/libufs/type.c	Tue Jun 23 21:17:13 2020	(r362558)
+++ head/lib/libufs/type.c	Tue Jun 23 21:28:26 2020	(r362559)
@@ -69,9 +69,10 @@ ufs_disk_close(struct uufsd *disk)
 		free((char *)(uintptr_t)disk->d_name);
 		disk->d_name = NULL;
 	}
-	if (disk->d_sbcsum != NULL) {
-		free(disk->d_sbcsum);
-		disk->d_sbcsum = NULL;
+	if (disk->d_si != NULL) {
+		free(disk->d_si->si_csp);
+		free(disk->d_si);
+		disk->d_si = NULL;
 	}
 	return (0);
 }
@@ -164,7 +165,7 @@ again:	if ((ret = stat(name, &st)) < 0) {
 	disk->d_mine = 0;
 	disk->d_ufs = 0;
 	disk->d_error = NULL;
-	disk->d_sbcsum = NULL;
+	disk->d_si = NULL;
 
 	if (oname != name) {
 		name = strdup(name);

Modified: head/sbin/fsck_ffs/setup.c
==============================================================================
--- head/sbin/fsck_ffs/setup.c	Tue Jun 23 21:17:13 2020	(r362558)
+++ head/sbin/fsck_ffs/setup.c	Tue Jun 23 21:28:26 2020	(r362559)
@@ -216,7 +216,7 @@ setup(char *dev)
 	disk.d_ufs = (sblock.fs_magic == FS_UFS1_MAGIC) ? 1 : 2;
 	disk.d_bsize = sblock.fs_fsize / fsbtodb(&sblock, 1);
 	disk.d_sblock = sblock.fs_sblockloc / disk.d_bsize;
-	disk.d_sbcsum = sblock.fs_csp;
+	disk.d_si = sblock.fs_si;
 
 	if (skipclean && ckclean && sblock.fs_clean) {
 		pwarn("FILE SYSTEM CLEAN; SKIPPING CHECKS\n");


More information about the svn-src-all mailing list