On Sun, May 30, 2010 at 8:39 AM, Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > Probably because I copied the code from something that used > SPLICE_F_NONBLOCK ;-) > >From the relay API implementation? > But userspace passes that flag too. Although, maybe I just don't > understand the API fully. > this flag is a little confusing. It is much like: flags = fcntl(pipe_fd, F_GETFL); fcntl(pipe_fd, F_SETFL, flags | O_NONBLOCK); splice(..pipe_fd..., 0); // without O_NONBLOCK fcntl(pipe_fd, F_SETFL, falgs); In fact, setting O_NONBLOCK is the only way of letting splice pipe operations non-blockable currently. When splicing, splice doesn't refer to the pipe file's f_flags. :( -- Regards, Changli Gao(xiaosuo@xxxxxxxxx) -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html