diff options
author | pjd <pjd@FreeBSD.org> | 2004-11-09 23:15:40 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2004-11-09 23:15:40 +0000 |
commit | a2d5ae235db70465d84ce92765d3ed0ae37f28c0 (patch) | |
tree | 4761fe10bb69211f066b5cc05d16ad8f7b72cf1a /sys/geom/raid3 | |
parent | 8fe1c8565771b852ee289cd3aa35ade92db714f7 (diff) | |
download | FreeBSD-src-a2d5ae235db70465d84ce92765d3ed0ae37f28c0.zip FreeBSD-src-a2d5ae235db70465d84ce92765d3ed0ae37f28c0.tar.gz |
Don't rely on DIRTY flag to be sure that consumer if open, because
DIRTY flag can be removed in idle process. Use consumer's acw field
instead to avoid opening consumer twice.
Diffstat (limited to 'sys/geom/raid3')
-rw-r--r-- | sys/geom/raid3/g_raid3.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/geom/raid3/g_raid3.c b/sys/geom/raid3/g_raid3.c index 36f3e20..4a020d7 100644 --- a/sys/geom/raid3/g_raid3.c +++ b/sys/geom/raid3/g_raid3.c @@ -618,7 +618,7 @@ g_raid3_write_metadata(struct g_raid3_disk *disk, struct g_raid3_metadata *md) /* * Open consumer if it wasn't opened and remember to close it. */ - if ((disk->d_flags & G_RAID3_DISK_FLAG_DIRTY) == 0) { + if (cp->acw == 0) { error = g_access(cp, 0, 1, 1); G_RAID3_DEBUG(2, "Access %s r%dw%de%d = %d", cp->provider->name, 0, 1, 1, error); |