[lkml]   [2012]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: autofs: make the autofsv5 packet file descriptor use a packetized pipe
On 04/29/2012 01:54 PM, Linux Kernel Mailing List wrote:
> With both automount and systemd doing a single read() system call, and
> verifying that they get *exactly* the size they expect but using
> different sizes, it seemed that fixing one of them inevitably seemed to
> break the other. At one point, a patch I seriously considered applying
> from Michael Tokarev did a "strcmp()" to see if it was automount that
> was doing the operation. Ugly, ugly.
> However, a prettier solution exists now thanks to the packetized pipe
> mode. By marking the communication pipe as being packetized (by simply
> setting the O_DIRECT flag), we can always just write the bigger packet
> size, and if user-space does a smaller read, it will just get that
> partial end result and the extra alignment padding will simply be thrown
> away.
> This makes both automount and systemd happy, since they now get the size
> they asked for, and the kernel side of autofs simply no longer needs to
> care - it could pad out the packet arbitrarily.
> Of course, if there is some *other* user of autofs (please, please,
> please tell me it ain't so - and we haven't heard of any) that tries to
> read the packets with multiple writes, that other user will now be
> broken - the whole point of the packetized mode is that one system call
> gets exactly one packet, and you cannot read a packet in pieces.

I just looked at am-utils; am-utils *does* use autofs v5, and *will*
loop back and read more data on a short read.


H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

 \ /
  Last update: 2012-04-30 02:21    [W:0.075 / U:0.240 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site