summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authordholland <dholland@NetBSD.org>2015-10-03 08:28:30 +0000
committerdholland <dholland@NetBSD.org>2015-10-03 08:28:30 +0000
commit84cfec65ae5f36d4b2462824348f77cdca1f7bd8 (patch)
tree4104bb58cacba7d27dd23330c087729f3e46b2f9 /libexec
parentd8dd855f41633fcf4c3ef281dbc808867a3a3697 (diff)
Use IINFO in the cleaner.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/lfs_cleanerd/lfs_cleanerd.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/libexec/lfs_cleanerd/lfs_cleanerd.c b/libexec/lfs_cleanerd/lfs_cleanerd.c
index c400b1ba3cd..cc14d4ac8e0 100644
--- a/libexec/lfs_cleanerd/lfs_cleanerd.c
+++ b/libexec/lfs_cleanerd/lfs_cleanerd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: lfs_cleanerd.c,v 1.53 2015/09/01 06:16:58 dholland Exp $ */
+/* $NetBSD: lfs_cleanerd.c,v 1.54 2015/10/03 08:28:30 dholland Exp $ */
/*-
* Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -419,9 +419,9 @@ parse_pseg(struct clfs *fs, daddr_t daddr, BLOCK_INFO **bipp, int *bic)
SEGSUM *ssp;
IFILE *ifp;
BLOCK_INFO *bip, *nbip;
- int32_t *iaddrp;
daddr_t idaddr, odaddr;
FINFO *fip;
+ IINFO *iip;
struct ubuf *ifbp;
union lfs_dinode *dip;
u_int32_t ck, vers;
@@ -440,8 +440,7 @@ parse_pseg(struct clfs *fs, daddr_t daddr, BLOCK_INFO **bipp, int *bic)
*/
cp = fd_ptrget(fs->clfs_devvp, daddr);
ssp = (SEGSUM *)cp;
- /* XXX ondisk32 */
- iaddrp = ((int32_t *)(cp + lfs_sb_getibsize(fs))) - 1;
+ iip = SEGSUM_IINFOSTART(fs, cp);
fip = SEGSUM_FINFOBASE(fs, cp);
/*
@@ -479,7 +478,7 @@ parse_pseg(struct clfs *fs, daddr_t daddr, BLOCK_INFO **bipp, int *bic)
* We must have either a file block or an inode block.
* If we don't have either one, it's an error.
*/
- if (fic >= lfs_ss_getnfinfo(fs, ssp) && *iaddrp != daddr) {
+ if (fic >= lfs_ss_getnfinfo(fs, ssp) && lfs_ii_getblock(fs, iip) != daddr) {
syslog(LOG_WARNING, "%s: bad pseg at %jx (seg %d)",
lfs_sb_getfsmnt(fs), (intmax_t)odaddr, lfs_dtosn(fs, odaddr));
*bipp = bip;
@@ -489,7 +488,7 @@ parse_pseg(struct clfs *fs, daddr_t daddr, BLOCK_INFO **bipp, int *bic)
/*
* Note each inode from the inode blocks
*/
- if (inoc < lfs_ss_getninos(fs, ssp) && *iaddrp == daddr) {
+ if (inoc < lfs_ss_getninos(fs, ssp) && lfs_ii_getblock(fs, iip) == daddr) {
cp = fd_ptrget(fs->clfs_devvp, daddr);
ck = lfs_cksum_part(cp, sizeof(u_int32_t), ck);
for (i = 0; i < lfs_sb_getinopb(fs); i++) {
@@ -531,7 +530,7 @@ parse_pseg(struct clfs *fs, daddr_t daddr, BLOCK_INFO **bipp, int *bic)
}
inoc += i;
daddr += lfs_btofsb(fs, lfs_sb_getibsize(fs));
- --iaddrp;
+ iip = NEXTLOWER_IINFO(fs, iip);
continue;
}