diff options
author | Ian Kent <raven@themaw.net> | 2006-03-27 04:14:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-27 11:44:40 -0500 |
commit | 5c0a32fc2cd0be912511199449a37a4a6f0f582d (patch) | |
tree | f34ff979282bd957dee161e3668cc01b2dbd51ee /include | |
parent | 3a15e2ab5d6e79a79291734ac24f33d51c0ae389 (diff) |
[PATCH] autofs4: add new packet type for v5 communications
This patch define a new autofs packet for autofs v5 and updates the waitq.c
functions to handle the additional packet type.
Signed-off-by: Ian Kent <raven@themaw.net>
Cc: Al Viro <viro@ftp.linux.org.uk>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/auto_fs4.h | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/include/linux/auto_fs4.h b/include/linux/auto_fs4.h index d998ddcf7288..0a6bc52ffe88 100644 --- a/include/linux/auto_fs4.h +++ b/include/linux/auto_fs4.h | |||
@@ -19,18 +19,37 @@ | |||
19 | #undef AUTOFS_MIN_PROTO_VERSION | 19 | #undef AUTOFS_MIN_PROTO_VERSION |
20 | #undef AUTOFS_MAX_PROTO_VERSION | 20 | #undef AUTOFS_MAX_PROTO_VERSION |
21 | 21 | ||
22 | #define AUTOFS_PROTO_VERSION 4 | 22 | #define AUTOFS_PROTO_VERSION 5 |
23 | #define AUTOFS_MIN_PROTO_VERSION 3 | 23 | #define AUTOFS_MIN_PROTO_VERSION 3 |
24 | #define AUTOFS_MAX_PROTO_VERSION 4 | 24 | #define AUTOFS_MAX_PROTO_VERSION 5 |
25 | 25 | ||
26 | #define AUTOFS_PROTO_SUBVERSION 10 | 26 | #define AUTOFS_PROTO_SUBVERSION 0 |
27 | 27 | ||
28 | /* Mask for expire behaviour */ | 28 | /* Mask for expire behaviour */ |
29 | #define AUTOFS_EXP_IMMEDIATE 1 | 29 | #define AUTOFS_EXP_IMMEDIATE 1 |
30 | #define AUTOFS_EXP_LEAVES 2 | 30 | #define AUTOFS_EXP_LEAVES 2 |
31 | 31 | ||
32 | /* New message type */ | 32 | /* Daemon notification packet types */ |
33 | #define autofs_ptype_expire_multi 2 /* Expire entry (umount request) */ | 33 | enum autofs_notify { |
34 | NFY_NONE, | ||
35 | NFY_MOUNT, | ||
36 | NFY_EXPIRE | ||
37 | }; | ||
38 | |||
39 | /* Kernel protocol version 4 packet types */ | ||
40 | |||
41 | /* Expire entry (umount request) */ | ||
42 | #define autofs_ptype_expire_multi 2 | ||
43 | |||
44 | /* Kernel protocol version 5 packet types */ | ||
45 | |||
46 | /* Indirect mount missing and expire requests. */ | ||
47 | #define autofs_ptype_missing_indirect 3 | ||
48 | #define autofs_ptype_expire_indirect 4 | ||
49 | |||
50 | /* Direct mount missing and expire requests */ | ||
51 | #define autofs_ptype_missing_direct 5 | ||
52 | #define autofs_ptype_expire_direct 6 | ||
34 | 53 | ||
35 | /* v4 multi expire (via pipe) */ | 54 | /* v4 multi expire (via pipe) */ |
36 | struct autofs_packet_expire_multi { | 55 | struct autofs_packet_expire_multi { |
@@ -40,14 +59,36 @@ struct autofs_packet_expire_multi { | |||
40 | char name[NAME_MAX+1]; | 59 | char name[NAME_MAX+1]; |
41 | }; | 60 | }; |
42 | 61 | ||
62 | /* autofs v5 common packet struct */ | ||
63 | struct autofs_v5_packet { | ||
64 | struct autofs_packet_hdr hdr; | ||
65 | autofs_wqt_t wait_queue_token; | ||
66 | __u32 dev; | ||
67 | __u64 ino; | ||
68 | __u32 uid; | ||
69 | __u32 gid; | ||
70 | __u32 pid; | ||
71 | __u32 tgid; | ||
72 | __u32 len; | ||
73 | char name[NAME_MAX+1]; | ||
74 | }; | ||
75 | |||
76 | typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; | ||
77 | typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; | ||
78 | typedef struct autofs_v5_packet autofs_packet_missing_direct_t; | ||
79 | typedef struct autofs_v5_packet autofs_packet_expire_direct_t; | ||
80 | |||
43 | union autofs_packet_union { | 81 | union autofs_packet_union { |
44 | struct autofs_packet_hdr hdr; | 82 | struct autofs_packet_hdr hdr; |
45 | struct autofs_packet_missing missing; | 83 | struct autofs_packet_missing missing; |
46 | struct autofs_packet_expire expire; | 84 | struct autofs_packet_expire expire; |
47 | struct autofs_packet_expire_multi expire_multi; | 85 | struct autofs_packet_expire_multi expire_multi; |
86 | struct autofs_v5_packet v5_packet; | ||
48 | }; | 87 | }; |
49 | 88 | ||
50 | #define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93,0x66,int) | 89 | #define AUTOFS_IOC_EXPIRE_MULTI _IOW(0x93,0x66,int) |
90 | #define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI | ||
91 | #define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI | ||
51 | #define AUTOFS_IOC_PROTOSUBVER _IOR(0x93,0x67,int) | 92 | #define AUTOFS_IOC_PROTOSUBVER _IOR(0x93,0x67,int) |
52 | #define AUTOFS_IOC_ASKREGHOST _IOR(0x93,0x68,int) | 93 | #define AUTOFS_IOC_ASKREGHOST _IOR(0x93,0x68,int) |
53 | #define AUTOFS_IOC_TOGGLEREGHOST _IOR(0x93,0x69,int) | 94 | #define AUTOFS_IOC_TOGGLEREGHOST _IOR(0x93,0x69,int) |