In my aoe driver I'm getting closes on QIDs that were never opened:
(assuming devaoe is bound to the CWD) rb1# echo bind /net/ether1 >aoectl aoeopen: c->qid.path=0x2 aoeclose: c->qid.path=0x2 rb1# cd aoe2.9 rb1# ls -l aoeclose: c->qid.path=0x16 aoeopen: c->qid.path=0x16 aoeclose: c->qid.path=0x16 --rw-rw-rw- 0 dennis dennis 0 May 23 14:44 config --rw-rw-rw- 0 dennis dennis 0 May 23 14:44 ctl --rw-rw-rw- 0 dennis dennis 41174138880 May 23 14:44 data --r--r--r-- 0 dennis dennis 0 May 23 14:44 stat rb1# ls -l data aoeclose: c->qid.path=0x19 aoe2.9 data close (nopen=0) called from 8016c789 --rw-rw-rw- 0 dennis dennis 41174138880 May 23 14:44 data 8016c789 is in cclose. (which is obvious now) I had hoped to keep a reference count on data so i can know whether or not it's safe to switch to a new disk on the same blade. I don't think it's very fair to change disks while a proc is holding the device open for IO. Devwalk seems to be the immediate culprit, but I don't think it's wrong. How would one do ref counting in the face of dup'ing channels and potentially open references using the dev architecture? Cheers, Sam
