diff options
| -rw-r--r-- | fs/autofs4/autofs_i.h | 1 | ||||
| -rw-r--r-- | fs/autofs4/dev-ioctl.c | 1 | ||||
| -rw-r--r-- | fs/autofs4/inode.c | 2 | ||||
| -rw-r--r-- | fs/autofs4/waitq.c | 22 |
4 files changed, 3 insertions, 23 deletions
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h index eb1cc92cd67d..d8d8e7ba6a1e 100644 --- a/fs/autofs4/autofs_i.h +++ b/fs/autofs4/autofs_i.h | |||
| @@ -110,7 +110,6 @@ struct autofs_sb_info { | |||
| 110 | int sub_version; | 110 | int sub_version; |
| 111 | int min_proto; | 111 | int min_proto; |
| 112 | int max_proto; | 112 | int max_proto; |
| 113 | int compat_daemon; | ||
| 114 | unsigned long exp_timeout; | 113 | unsigned long exp_timeout; |
| 115 | unsigned int type; | 114 | unsigned int type; |
| 116 | int reghost_enabled; | 115 | int reghost_enabled; |
diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c index 9dacb8586701..3dfd615afb6b 100644 --- a/fs/autofs4/dev-ioctl.c +++ b/fs/autofs4/dev-ioctl.c | |||
| @@ -385,7 +385,6 @@ static int autofs_dev_ioctl_setpipefd(struct file *fp, | |||
| 385 | sbi->pipefd = pipefd; | 385 | sbi->pipefd = pipefd; |
| 386 | sbi->pipe = pipe; | 386 | sbi->pipe = pipe; |
| 387 | sbi->catatonic = 0; | 387 | sbi->catatonic = 0; |
| 388 | sbi->compat_daemon = is_compat_task(); | ||
| 389 | } | 388 | } |
| 390 | out: | 389 | out: |
| 391 | mutex_unlock(&sbi->wq_mutex); | 390 | mutex_unlock(&sbi->wq_mutex); |
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c index d8dc002e9cc3..14c7bc02349e 100644 --- a/fs/autofs4/inode.c +++ b/fs/autofs4/inode.c | |||
| @@ -19,7 +19,6 @@ | |||
| 19 | #include <linux/parser.h> | 19 | #include <linux/parser.h> |
| 20 | #include <linux/bitops.h> | 20 | #include <linux/bitops.h> |
| 21 | #include <linux/magic.h> | 21 | #include <linux/magic.h> |
| 22 | #include <linux/compat.h> | ||
| 23 | #include "autofs_i.h" | 22 | #include "autofs_i.h" |
| 24 | #include <linux/module.h> | 23 | #include <linux/module.h> |
| 25 | 24 | ||
| @@ -225,7 +224,6 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent) | |||
| 225 | set_autofs_type_indirect(&sbi->type); | 224 | set_autofs_type_indirect(&sbi->type); |
| 226 | sbi->min_proto = 0; | 225 | sbi->min_proto = 0; |
| 227 | sbi->max_proto = 0; | 226 | sbi->max_proto = 0; |
| 228 | sbi->compat_daemon = is_compat_task(); | ||
| 229 | mutex_init(&sbi->wq_mutex); | 227 | mutex_init(&sbi->wq_mutex); |
| 230 | mutex_init(&sbi->pipe_mutex); | 228 | mutex_init(&sbi->pipe_mutex); |
| 231 | spin_lock_init(&sbi->fs_lock); | 229 | spin_lock_init(&sbi->fs_lock); |
diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c index 9c098db43344..da8876d38a7b 100644 --- a/fs/autofs4/waitq.c +++ b/fs/autofs4/waitq.c | |||
| @@ -91,24 +91,7 @@ static int autofs4_write(struct autofs_sb_info *sbi, | |||
| 91 | 91 | ||
| 92 | return (bytes > 0); | 92 | return (bytes > 0); |
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | /* | ||
| 96 | * The autofs_v5 packet was misdesigned. | ||
| 97 | * | ||
| 98 | * The packets are identical on x86-32 and x86-64, but have different | ||
| 99 | * alignment. Which means that 'sizeof()' will give different results. | ||
| 100 | * Fix it up for the case of running 32-bit user mode on a 64-bit kernel. | ||
| 101 | */ | ||
| 102 | static noinline size_t autofs_v5_packet_size(struct autofs_sb_info *sbi) | ||
| 103 | { | ||
| 104 | size_t pktsz = sizeof(struct autofs_v5_packet); | ||
| 105 | #if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT) | ||
| 106 | if (sbi->compat_daemon > 0) | ||
| 107 | pktsz -= 4; | ||
| 108 | #endif | ||
| 109 | return pktsz; | ||
| 110 | } | ||
| 111 | |||
| 112 | static void autofs4_notify_daemon(struct autofs_sb_info *sbi, | 95 | static void autofs4_notify_daemon(struct autofs_sb_info *sbi, |
| 113 | struct autofs_wait_queue *wq, | 96 | struct autofs_wait_queue *wq, |
| 114 | int type) | 97 | int type) |
| @@ -172,7 +155,8 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi, | |||
| 172 | { | 155 | { |
| 173 | struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; | 156 | struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet; |
| 174 | 157 | ||
| 175 | pktsz = autofs_v5_packet_size(sbi); | 158 | pktsz = sizeof(*packet); |
| 159 | |||
| 176 | packet->wait_queue_token = wq->wait_queue_token; | 160 | packet->wait_queue_token = wq->wait_queue_token; |
| 177 | packet->len = wq->name.len; | 161 | packet->len = wq->name.len; |
| 178 | memcpy(packet->name, wq->name.name, wq->name.len); | 162 | memcpy(packet->name, wq->name.name, wq->name.len); |
