Messages in this thread | | | Date | Wed, 31 Mar 2004 14:37:33 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: msync() behaviour broken for MS_ASYNC, revert patch? |
| |
On Wed, 31 Mar 2004, Stephen C. Tweedie wrote: > > although I can't find an unambiguous definition of "queued for service" > in the online standard. I'm reading it as requiring that the I/O has > reached the block device layer, not simply that it has been marked dirty > for some future writeback pass to catch; Uli agrees with that > interpretation.
That interpretation makes pretty much zero sense.
If you care about the data hitting the disk, you have to use fsync() or similar _anyway_, and pretending anything else is just bogus.
As such, just marking the pages dirty is as much of a "queing" them for write as actually writing them, since in both cases the guarantees are _exactly_ the same: the pages have not hit the disk by the time the system call returns, but will hit the disk at some time in the future.
Having the requirement that it is on some sw-only request queue is nonsensical, since such a queue is totally invisible from a user perspective.
User space has no idea about "block device layer" vs "VM layer" queues, and trying to distinguiosh between the two is madness. It's just an internal implementation issue that has no meaning to the user.
Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |