Hi, I've been looking into the code how systemd handles the automounting.
I've got two issues: a. I've found the handling of the "missing" packet (autofs_ptype_missing_direct), which triggers the mounting. But I did not found the handling of the expire packet (autofs_ptype_expire_direct). Is this on purpose? I see a timeout set, so I guess it was the intention to handle the expire. b. the packet read from the pipe is of type union autofs_v5_packet_union which looks like: union autofs_v5_packet_union { struct autofs_packet_hdr hdr; struct autofs_v5_packet v5_packet; autofs_packet_missing_indirect_t missing_indirect; autofs_packet_expire_indirect_t expire_indirect; autofs_packet_missing_direct_t missing_direct; autofs_packet_expire_direct_t expire_direct; }; where autofs_v5_packet is: struct autofs_v5_packet { struct autofs_packet_hdr hdr; autofs_wqt_t wait_queue_token; __u32 dev; __u64 ino; __u32 uid; __u32 gid; __u32 pid; __u32 tgid; __u32 len; char name[NAME_MAX+1]; }; now in the code of automount_fd_event, the selection is based upon packet.hdr.type, and futher the fields packet.v5_packet.pid are used. Now this while packet is an union: it's used as hdr OR as autofs_v5_packet, not both at the same time. It works, so here probably happens something strange: while using the field packet.hdr, actually the field packet.v5_packet.hdr is used. Is this correct? Stef _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel