On Fri, 2011-11-18 at 23:33 +0100, John Hughes wrote:
On 11/18/2011 10:03 PM, Trond Myklebust wrote:What part of "write is asynchronous" is so hard to understand?
On Fri, 2011-11-18 at 15:57 -0500, Jim Rees wrote:Only if the write(2) returned EKEYEXPIRED, surely,
The write() syscall doesn't indicate whether the data is safe or not. Thatfsync(). Which may succeed if the user renews their ticket first.
would be the close() syscall.
However you may still have data loss if dirty data has been lost because
of EKEYEXPIRED returns on the WRITE RPC call...
Well, the hang after step 1a.I would want to know if data was lost.Which is _exactly_ how it works today, so what is the problem?
Intuition means nothing if I get an error.
If it were possible I'd like:
1. write works
1a. WRITE RPC fails, data stays in cache
2. ticket renewed
3. fsync works, data written