Mercurial > illumos > illumos-gate
view usr/src/cmd/refer/inv5.c @ 14050:0c8d9998d589
3747 txg commit callbacks don't work
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Eric Schrock <eric.schrock@delphix.com>
Approved by: Christopher Siden <christopher.siden@delphix.com>
author | Will Andrews <willa@spectralogic.com> |
---|---|
date | Tue, 11 Jun 2013 09:13:51 -0800 |
parents | 6c26331bc6b8 |
children |
line wrap: on
line source
/* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */ /* * Copyright (c) 1980 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ #pragma ident "%Z%%M% %I% %E% SMI" #include <stdio.h> #include <locale.h> extern void err(); int recopy(FILE *ft, FILE *fb, FILE *fa, int nhash) { /* copy fb (old hash items/pointers) to ft (new ones) */ int n, i, iflong; long getl(); int getw(); int *hpt_s; int (*getfun)(); long *hpt_l; long k, lp; if (fa == NULL) { err(gettext("No old pointers"), 0); return (0); } fread(&n, sizeof (n), 1, fa); fread(&iflong, sizeof (iflong), 1, fa); if (iflong) { hpt_l = (long *)calloc(sizeof (*hpt_l), n+1); n = fread(hpt_l, sizeof (*hpt_l), n, fa); } else { hpt_s = (int *)calloc(sizeof (*hpt_s), n+1); n = fread(hpt_s, sizeof (*hpt_s), n, fa); } if (n != nhash) fprintf(stderr, gettext("Changing hash value to old %d\n"), n); fclose(fa); if (iflong) getfun = (int(*)())getl; else getfun = getw; for (i = 0; i < n; i++) { if (iflong) lp = hpt_l[i]; else lp = hpt_s[i]; fseek(fb, lp, 0); while ((k = (*getfun)(fb)) != -1) fprintf(ft, "%04d %06ld\n", i, k); } fclose(fb); return (n); }