From 4b4f61e2b0cf3a2db99d67456e8fe34ebabbb282 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Sun, 6 May 2001 13:18:29 +0000 Subject: libstore/ 2001-04-26 Marcus Brinkmann * set.c: Use explicit comparison to MACH_PORT_NULL. storeio/ 2001-05-06 Marcus Brinkmann * dev.c (dev_open): Do not create/open the store with STORE_INACTIVE, as this doesn't work correctly. Inactivate the store afterwards instead. 2001-02-18 Marcus Brinkmann * dev.h (struct dev): New member nperopens. * storeio.c (open_hook): Hold device lock and check if this is the TODO: add item about the storeio hack --- storeio/dev.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'storeio/dev.c') diff --git a/storeio/dev.c b/storeio/dev.c index 108e7dd3..0c795a4b 100644 --- a/storeio/dev.c +++ b/storeio/dev.c @@ -145,19 +145,23 @@ dev_open (struct dev *dev) /* This means we had no store arguments. We are to operate on our underlying node. */ err = store_create (storeio_fsys->underlying, - STORE_INACTIVE | (dev->readonly ? STORE_READONLY : 0), + dev->readonly ? STORE_READONLY : 0, 0, &dev->store); - } else /* Open based on the previously parsed store arguments. */ err = store_parsed_open (dev->store_name, - STORE_INACTIVE - | (dev->readonly ? STORE_READONLY : 0), + dev->readonly ? STORE_READONLY : 0, &dev->store); if (err) return err; + /* Inactivate the store, it will be activated at first access. + We ignore possible EINVAL here. XXX Pass STORE_INACTIVE to + store_create/store_parsed_open instead when libstore is fixed + to support this. */ + store_set_flags (dev->store, STORE_INACTIVE); + dev->buf = mmap (0, dev->store->block_size, PROT_READ|PROT_WRITE, MAP_ANON, 0, 0); if (dev->buf == MAP_FAILED) -- cgit v1.2.3