[PATCH v7 1/4] sg: use rwsem to solve race during exclusive open

2013-08-28 Thread Vaughan Cao
A race condition may happen if two threads are both trying to open the same sg with O_EXCL simultaneously. It's possible that they both find fsds list is empty and get_exclude(sdp) returns 0, then they both call set_exclude() and break out from wait_event_interruptible and resume open. Now use

[PATCH v7 1/4] sg: use rwsem to solve race during exclusive open

2013-08-28 Thread Vaughan Cao
A race condition may happen if two threads are both trying to open the same sg with O_EXCL simultaneously. It's possible that they both find fsds list is empty and get_exclude(sdp) returns 0, then they both call set_exclude() and break out from wait_event_interruptible and resume open. Now use