diff options
author | phk <phk@FreeBSD.org> | 2003-02-11 11:01:26 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-02-11 11:01:26 +0000 |
commit | 89a4ec072e75d0785ce0ef9ce882fd947ff0991b (patch) | |
tree | 53af8c909fde6c1dd1828c0cf580322f79d1119c /sys/geom/geom_io.c | |
parent | 1ce699ee2ac50c3ad83e28e1bdfca610b8f71ab7 (diff) | |
download | FreeBSD-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.c | 8 |
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++; |