Note: I added this post to this forum yesterday and I find today that it has disappeared. I also entered it into the Solaris 11 folder on Wed. Mar. 6 and it also disappeared.
So here is the post again.
I have written a driver that will accept only 1 open. A application can successfully call an open to access the driver. If a 2nd application tries another open, the driver will return EBUSY. This 2nd application receives the EBUSY error correctly.
However on Solaris 11.1 ( and maybe 11.0) the OS seems to call a close() on our driver in response to the failed open attempt. This close causes the first application's file descripter to become invalid.
Solaris 10 does not call close on a failed open attempt.
Why is Solaris 11 making this close() call on the driver and is there anything required by a driver to prevent this from happening.