• Ian Kent's avatar
    autofs: fix add autofs_parse_fd() · d3c50061
    Ian Kent authored
    We are seeing systemd hang on its autofs direct mount at
    /proc/sys/fs/binfmt_misc.
    
    Historically this was due to a mismatch in the communication structure
    size between a 64 bit kernel and a 32 bit user space and was fixed by
    making the pipe communication record oriented.
    
    During autofs v5 development I decided to stay with the existing usage
    instead of changing to a packed structure for autofs <=> user space
    communications which turned out to be a mistake on my part.
    
    Problems arose and they were fixed by allowing for the 64 bit to 32
    bit size difference in the automount(8) code.
    
    Along the way systemd started to use autofs and eventually encountered
    this problem too. systemd refused to compensate for the length
    difference insisting it be fixed in the kernel. Fortunately Linus
    implemented the packetized pipe which resolved the problem in a
    straight forward and simple way.
    
    In the autofs mount api conversion series I inadvertatly dropped the
    packet pipe flag settings when adding the autofs_parse_fd() function.
    This patch fixes that omission.
    
    Fixes: 546694b8 ("autofs: add autofs_parse_fd()")
    Signed-off-by: default avatarIan Kent <raven@themaw.net>
    Link: https://lore.kernel.org/r/20231023093359.64265-1-raven@themaw.netTested-by: default avatarAnders Roxell <anders.roxell@linaro.org>
    Cc: Bill O'Donnell <bodonnel@redhat.com>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Dan Carpenter <dan.carpenter@linaro.org>
    Cc: Anders Roxell <anders.roxell@linaro.org>
    Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Reported-by: default avatarLinux Kernel Functional Testing <lkft@linaro.org>
    Reported-by: default avatarAnders Roxell <anders.roxell@linaro.org>
    Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
    d3c50061
inode.c 10.3 KB