On Wed, Dec 13, 2006 at 08:29:38PM -0800, Steve Langasek wrote: > On Mon, Dec 11, 2006 at 12:17:12PM +0100, Francesco P. Lovergine wrote: > > After about 20 days of work with both autodir and autofs4 upstream > > a final fix for autodir is available (closes #399454). > > Incidentally 0.9.8 is almost the same of 0.9.7 (integrating my previous fix > > for an header file and an initial trial to fix the above bug) at upstream > > level > > and we are quite confident it does not impact stability in respect with > > 0.9.7. > > Just in case I could provide a 1:0.9.7-1 if required (0.9.7 was the last > > available > > version in testing AFAIK). > > > About the fix, as communicated in #debian-kernel, just FYI: > > > <frankie> FYI: #399454 is essentially a bug in the auto_fs4.h header > > file, as resulted by talking with autofs and autodir upstreams (API > > breakage due to a change in a union used both in v4 and > > v5). The issue potentially impact any program built on > > 2.6.17+ and depending on auto_fs4.h. > > <frankie> any program which still uses v4 protocol, indeed > > <frankie> autofs upstream is fixing on his side for the kernel, but I > > wonder if we need to fix as well etch linux-kernel-headers > > <frankie> of course this is not a problem for debian binaries, but i > > think developers would not appreciate a broken header in etch for their > > buildings and the issue is quite obscure > > If the union is different between v4 and v5, what would a *fixed* header > look like? Is this anything other than picking which protocol to be > incompatible with? >
This is the new header Ian should release for the kernel and recently sent me. The differences are due to a v5 specific union definition. I'm asking to Ian if it could be included as is in 2.6.18.5 without breakage for autofs4 kernel module, as well. I'll followup the answer when available... /* -*- c -*- * linux/include/linux/auto_fs4.h * * Copyright 1999-2000 Jeremy Fitzhardinge <[EMAIL PROTECTED]> * * This file is part of the Linux kernel and is made available under * the terms of the GNU General Public License, version 2, or at your * option, any later version, incorporated herein by reference. */ #ifndef _LINUX_AUTO_FS4_H #define _LINUX_AUTO_FS4_H /* Include common v3 definitions */ #include <linux/auto_fs.h> /* autofs v4 definitions */ #undef AUTOFS_PROTO_VERSION #undef AUTOFS_MIN_PROTO_VERSION #undef AUTOFS_MAX_PROTO_VERSION #define AUTOFS_PROTO_VERSION 5 #define AUTOFS_MIN_PROTO_VERSION 3 #define AUTOFS_MAX_PROTO_VERSION 5 #define AUTOFS_PROTO_SUBVERSION 0 /* Mask for expire behaviour */ #define AUTOFS_EXP_IMMEDIATE 1 #define AUTOFS_EXP_LEAVES 2 /* Daemon notification packet types */ enum autofs_notify { NFY_NONE, NFY_MOUNT, NFY_EXPIRE }; /* Kernel protocol version 4 packet types */ /* Expire entry (umount request) */ #define autofs_ptype_expire_multi 2 /* Kernel protocol version 5 packet types */ /* Indirect mount missing and expire requests. */ #define autofs_ptype_missing_indirect 3 #define autofs_ptype_expire_indirect 4 /* Direct mount missing and expire requests */ #define autofs_ptype_missing_direct 5 #define autofs_ptype_expire_direct 6 /* v4 multi expire (via pipe) */ struct autofs_packet_expire_multi { struct autofs_packet_hdr hdr; autofs_wqt_t wait_queue_token; int len; char name[NAME_MAX+1]; }; union autofs_packet_union { struct autofs_packet_hdr hdr; struct autofs_packet_missing missing; struct autofs_packet_expire expire; struct autofs_packet_expire_multi expire_multi; }; /* autofs v5 packet struct and union */ 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]; }; typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; typedef struct autofs_v5_packet autofs_packet_missing_direct_t; typedef struct autofs_v5_packet autofs_packet_expire_direct_t; union autofs_v5_packet_union { struct autofs_packet_hdr hdr; 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; }; #define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93,0x66,int) #define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI #define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI #define AUTOFS_IOC_PROTOSUBVER _IOR(0x93,0x67,int) #define AUTOFS_IOC_ASKREGHOST _IOR(0x93,0x68,int) #define AUTOFS_IOC_TOGGLEREGHOST _IOR(0x93,0x69,int) #define AUTOFS_IOC_ASKUMOUNT _IOR(0x93,0x70,int) #endif /* _LINUX_AUTO_FS4_H */ -- Francesco P. Lovergine -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]