iSCSI disconnects dilema

Danny Braniss danny at cs.huji.ac.il
Sun Jan 14 09:53:40 UTC 2007


...
> 
> So you had a scenario where a program was doing I/O right up to system
> (initiator) shutdown, and some of those I/O's got lost in the process?
> I guess I don't understand why the OS didn't flush all outstanding I/O
> buffers after terminating the program and before finishing the shutdown.
> Maybe you are doing something illegal in your driver, or maybe you need
> to implement a kernel shutdown hook that will allow you to block the
> shutdown until everything is flushed.
> 
the problem was solved! it just took me a while to find the cause :-)
the driver picks the fd/socket from userland, via fgetsock(...),
this increases the socket usage count, which I wrongly believed
would save me from the userland exiting. a call to fget(...) now solves
this, and so shutdown can now flush all iscsi buffers, and fsck'in is not 
necesary
on reboot.

danny

> Scott




More information about the freebsd-hackers mailing list