On 02/05/2015 10:03 AM, Al Viro wrote: > On Thu, Feb 05, 2015 at 08:47:29AM +0000, Al Viro wrote: >> You are confusing datagram-per-syscall (which they are) with >> datagram-per-iovec (which they are definitely not). IOW, they behave >> as UDP sockets - writev() is purely scatter-gather variant of write(), >> with datagram per syscall and all vector elements silently concatenated. >> That's class 2, and _not_ in its intersection with class 1. > > PS: you want class 1, look at something like /proc/sys/kernel/domainname > (or any other sysctl of that sort). write "foobar" there and > cat /proc/sys/kernel/domainname will print foorbat. writev an array consisting > of "foo" and "bar", and you'll see bar afterwards, same as you would > after writing first "foo", then "bar". There the iovec boundaries affect > the result - ->no aio_write() for that sucker, so we get two calls of > ->write(), with expected results. And there are character devices like that > as well. _That_ is class 1 outside of intersection with class 2. > Oh, I see. Thanks. So we only need to add endpoint halting to aio_read()/aio_write(), to make their behaviour similar to sync ones, right? Robert Baldyga -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html