Commit ac6424b981bc ("sched/wait: Rename wait_queue_t => wait_queue_entry_t") had scripted the renaming incorrectly, and didn't actually check that the 'wait_queue_t' was a full token. As a result, it also triggered on 'wait_queue_token', and renamed that to 'wait_queue_entry_token' entry in the autofs4 packet structure definition too. That was entirely incorrect, and not intended. The end result built fine when building just the kernel - because everything had been renamed consistently there - but caused problems in user space because the "struct autofs_packet_missing" type is exported as part of the uapi. This scripts it all back again: git grep -lw wait_queue_entry_token | xargs sed -i 's/wait_queue_entry_token/wait_queue_token/g' and checks the end result.
Showing the changes to include/uapi (2 of 5 files). Show all
Unified · Split
| @@ -26,7 +26,7 @@ · 25 unmodified lines | |||
| 26 | #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION | 26 | #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION |
| 27 | 27 | ||
| 28 | /* | 28 | /* |
| 29 | * The wait_queue_entry_token (autofs_wqt_t) is part of a structure which is passed | 29 | * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed |
| 30 | * back to the kernel via ioctl from userspace. On architectures where 32- and | 30 | * back to the kernel via ioctl from userspace. On architectures where 32- and |
| 31 | * 64-bit userspace binaries can be executed it's important that the size of | 31 | * 64-bit userspace binaries can be executed it's important that the size of |
| 32 | * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we | 32 | * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we |
| @@ -49,7 +49,7 @@ struct autofs_packet_hdr { · 16 unmodified lines | |||
| 49 | 49 | ||
| 50 | struct autofs_packet_missing { | 50 | struct autofs_packet_missing { |
| 51 | struct autofs_packet_hdr hdr; | 51 | struct autofs_packet_hdr hdr; |
| 52 | autofs_wqt_t wait_queue_entry_token; | 52 | autofs_wqt_t wait_queue_token; |
| 53 | int len; | 53 | int len; |
| 54 | char name[NAME_MAX+1]; | 54 | char name[NAME_MAX+1]; |
| 55 | }; | 55 | }; |
| @@ -108,7 +108,7 @@ enum autofs_notify { · 107 unmodified lines | |||
| 108 | /* v4 multi expire (via pipe) */ | 108 | /* v4 multi expire (via pipe) */ |
| 109 | struct autofs_packet_expire_multi { | 109 | struct autofs_packet_expire_multi { |
| 110 | struct autofs_packet_hdr hdr; | 110 | struct autofs_packet_hdr hdr; |
| 111 | autofs_wqt_t wait_queue_entry_token; | 111 | autofs_wqt_t wait_queue_token; |
| 112 | int len; | 112 | int len; |
| 113 | char name[NAME_MAX+1]; | 113 | char name[NAME_MAX+1]; |
| 114 | }; | 114 | }; |
| @@ -123,7 +123,7 @@ union autofs_packet_union { · 8 unmodified lines | |||
| 123 | /* autofs v5 common packet struct */ | 123 | /* autofs v5 common packet struct */ |
| 124 | struct autofs_v5_packet { | 124 | struct autofs_v5_packet { |
| 125 | struct autofs_packet_hdr hdr; | 125 | struct autofs_packet_hdr hdr; |
| 126 | autofs_wqt_t wait_queue_entry_token; | 126 | autofs_wqt_t wait_queue_token; |
| 127 | __u32 dev; | 127 | __u32 dev; |
| 128 | __u64 ino; | 128 | __u64 ino; |
| 129 | __u32 uid; | 129 | __u32 uid; |