Yep. I missied your concerns.

Provided the problem is with upgradtion of module, then,

I though about second possibility without touching auto_fs4.h.
All that needed is to redefine following definitions.

#define AUTOFS_PROTO_VERSION            5
#define AUTOFS_MIN_PROTO_VERSION        3
#define AUTOFS_MAX_PROTO_VERSION        5

I think this should be enough.

And I asked Ian for openion and waiting for his reply.

As for the compatibility check, Autodir supports only protocol 4 and in
the future 5. So only check for protocol 4 is needed at this moment.

Autodir was build on autofs 3 protocol initially but it was dropped as
it was planned to be discontinued by Ian.

Regards
ramana

--- "Francesco P. Lovergine" <[EMAIL PROTECTED]> wrote:

> On Thu, Nov 23, 2006 at 01:54:40AM -0800, ramana wrote:
> > First thanks to Ian for providing valuable info for arrving at this
> > conclusion.
> > 
> > What happened? There is old autofs4 module which supported autofs4
> > protocol. Autofs team developed new autofs5 protocol but new module
> > given name as autofs4.
> > 
> > So this is where the problem is. New module is backward compatible
> with
> > autofs4 protcol and also supports autofs5 but with the name
> 'autofs4'.
> > 
> > Everything ok but with the autofs headers.
> > 
> > What can be done?
> > 
> > Until this is resolved, just compile autodir with old
> > /usr/src/linux/auto_fs4.h and everthing should work fine.
> > 
> > That is the reason older autodir compiled with older header file
> > working fine with new kernel module autofs4 (which is autofs5)
> > 
> > Since I do not have access to new autofs module on my Fedora, the
> > testing is going fine -- which is compiled with older autofs
> module.
> > 
> > And I can not say 100% sure about. (as I said I do not have access
> to
> > the latest module and I can not confirm it myself doing tests).
> > 
> 
> The autofs4->autofs5 update was quite clear. What I find strange 
> is the problem in cooperating with current (enclosed) auto_fs4.h
> header file, which is quite old. Also I see an autofs5 related struct
> in the union autofs_packet_union, but shouldn't all that thought
> for being back-compatible? 
> 
> -- 
> Francesco P. Lovergine
> > /* -*- 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];
> };
> 
> /* autofs v5 common packet struct */
> 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_packet_union {
>       struct autofs_packet_hdr hdr;
>       struct autofs_packet_missing missing;
>       struct autofs_packet_expire expire;
>       struct autofs_packet_expire_multi expire_multi;
>       struct autofs_v5_packet v5_packet;
> };
> 
> #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 */
> 





 
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to