summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_io.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-02-11 11:01:26 +0000
committerphk <phk@FreeBSD.org>2003-02-11 11:01:26 +0000
commit89a4ec072e75d0785ce0ef9ce882fd947ff0991b (patch)
tree53af8c909fde6c1dd1828c0cf580322f79d1119c /sys/geom/geom_io.c
parent1ce699ee2ac50c3ad83e28e1bdfca610b8f71ab7 (diff)
downloadFreeBSD-src-89a4ec072e75d0785ce0ef9ce882fd947ff0991b.zip
FreeBSD-src-89a4ec072e75d0785ce0ef9ce882fd947ff0991b.tar.gz
Turn the "updating" flag (back) into two sequence number fields at
either ends of the structure so we have a way to determine if a snapshot is consistent.
Diffstat (limited to 'sys/geom/geom_io.c')
-rw-r--r--sys/geom/geom_io.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c
index 1912587..f334817 100644
--- a/sys/geom/geom_io.c
+++ b/sys/geom/geom_io.c
@@ -327,8 +327,8 @@ g_io_deliver(struct bio *bp, int error)
}
binuptime(&t1);
/* Raise the "inconsistent" flag for userland */
- atomic_set_acq_int(&cp->stat->updating, 1);
- atomic_set_acq_int(&pp->stat->updating, 1);
+ atomic_add_acq_int(&cp->stat->seq0, 1);
+ atomic_add_acq_int(&pp->stat->seq0, 1);
if (idx >= 0) {
/* Account the service time */
dt = t1;
@@ -360,8 +360,8 @@ g_io_deliver(struct bio *bp, int error)
bintime_add(&pp->stat->bt, &dt);
pp->stat->wentbusy = t1;
/* Mark the structures as consistent again */
- atomic_store_rel_int(&cp->stat->updating, 0);
- atomic_store_rel_int(&pp->stat->updating, 0);
+ atomic_add_acq_int(&cp->stat->seq1, 1);
+ atomic_add_acq_int(&pp->stat->seq1, 1);
}
cp->stat->nend++;
pp->stat->nend++;
OpenPOWER on IntegriCloud