aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirk McKusick <mckusick@FreeBSD.org>2021-11-15 06:09:06 +0000
committerKirk McKusick <mckusick@FreeBSD.org>2021-11-15 06:10:16 +0000
commitb366ee4868bca2b3ebe4bb29c9590a29b6cecc29 (patch)
tree276ea71a89f2e4a1ce8188740b9db583f3f8a369
parentf7523c8a19d008412ccc969b12eeb756613f3678 (diff)
Consolodate four copies of the STDSB define into a single place.
The STDSB macro is passed to the ffs_sbget() routine to fetch a UFS/FFS superblock "from the stadard place". It was identically defined in lib/libufs/libufs.h, stand/libsa/ufs.c, sys/ufs/ffs/ffs_extern.h, and sys/ufs/ffs/ffs_subr.c. Delete it from these four files and define it instead in sys/ufs/ffs/fs.h. All existing uses of this macro already include sys/ufs/ffs/fs.h so no include changes need to be made. No functional change intended. Sponsored by: Netflix
-rw-r--r--lib/libufs/libufs.h6
-rw-r--r--stand/libsa/ufs.c5
-rw-r--r--sys/ufs/ffs/ffs_extern.h6
-rw-r--r--sys/ufs/ffs/ffs_subr.c5
-rw-r--r--sys/ufs/ffs/fs.h12
5 files changed, 12 insertions, 22 deletions
diff --git a/lib/libufs/libufs.h b/lib/libufs/libufs.h
index 8160fdcd68a9..63a8dc170997 100644
--- a/lib/libufs/libufs.h
+++ b/lib/libufs/libufs.h
@@ -118,12 +118,6 @@ void ffs_update_dinode_ckhash(struct fs *, struct ufs2_dinode *);
int ffs_verify_dinode_ckhash(struct fs *, struct ufs2_dinode *);
/*
- * Request standard superblock location in ffs_sbget
- */
-#define STDSB -1 /* Fail if check-hash is bad */
-#define STDSB_NOHASHFAIL -2 /* Ignore check-hash failure */
-
-/*
* block.c
*/
ssize_t bread(struct uufsd *, ufs2_daddr_t, void *, size_t);
diff --git a/stand/libsa/ufs.c b/stand/libsa/ufs.c
index a4015dea74c2..31212bf3473a 100644
--- a/stand/libsa/ufs.c
+++ b/stand/libsa/ufs.c
@@ -154,11 +154,6 @@ static int ufs_use_sa_read(void *, off_t, void **, int);
/* from ffs_subr.c */
int ffs_sbget(void *, struct fs **, off_t, char *,
int (*)(void *, off_t, void **, int));
-/*
- * Request standard superblock location in ffs_sbget
- */
-#define STDSB -1 /* Fail if check-hash is bad */
-#define STDSB_NOHASHFAIL -2 /* Ignore check-hash failure */
/*
* Read a new inode into a file structure.
diff --git a/sys/ufs/ffs/ffs_extern.h b/sys/ufs/ffs/ffs_extern.h
index c835239986ba..fdc08dc6aafb 100644
--- a/sys/ufs/ffs/ffs_extern.h
+++ b/sys/ufs/ffs/ffs_extern.h
@@ -138,12 +138,6 @@ int ffs_breadz(struct ufsmount *, struct vnode *, daddr_t, daddr_t, int,
#define FFSR_UNSUSPEND 0x0002
/*
- * Request standard superblock location in ffs_sbget
- */
-#define STDSB -1 /* Fail if check-hash is bad */
-#define STDSB_NOHASHFAIL -2 /* Ignore check-hash failure */
-
-/*
* Definitions for TRIM interface
*
* Special keys and recommended hash table size
diff --git a/sys/ufs/ffs/ffs_subr.c b/sys/ufs/ffs/ffs_subr.c
index 3e6cefa7be0c..60d90aac5bcc 100644
--- a/sys/ufs/ffs/ffs_subr.c
+++ b/sys/ufs/ffs/ffs_subr.c
@@ -50,11 +50,6 @@ uint32_t ffs_calc_sbhash(struct fs *);
struct malloc_type;
#define UFS_MALLOC(size, type, flags) malloc(size)
#define UFS_FREE(ptr, type) free(ptr)
-/*
- * Request standard superblock location in ffs_sbget
- */
-#define STDSB -1 /* Fail if check-hash is bad */
-#define STDSB_NOHASHFAIL -2 /* Ignore check-hash failure */
#else /* _KERNEL */
#include <sys/systm.h>
diff --git a/sys/ufs/ffs/fs.h b/sys/ufs/ffs/fs.h
index df003c4282d9..00c153b9684d 100644
--- a/sys/ufs/ffs/fs.h
+++ b/sys/ufs/ffs/fs.h
@@ -77,6 +77,18 @@
#define SBLOCKSIZE 8192
#define SBLOCKSEARCH \
{ SBLOCK_UFS2, SBLOCK_UFS1, SBLOCK_FLOPPY, SBLOCK_PIGGY, -1 }
+/*
+ * Request standard superblock location in ffs_sbget().
+ *
+ * STDSB will fail if the superblock has a check hash and it is wrong.
+ *
+ * STDSB_NOHASHFAIL will note that the check hash is wrong but will
+ * still return the superblock. This is used by the bootstrap code
+ * to give the system a chance to come up so that fsck can be run
+ * to correct the problem.
+ */
+#define STDSB -1 /* Fail if check-hash is bad */
+#define STDSB_NOHASHFAIL -2 /* Ignore check-hash failure */
/*
* Max number of fragments per block. This value is NOT tweakable.