Re: [PATCH] autofs: Revert wait_queue_t => wait_queue_entry_t rename

Florian Fainelli
2017-07-10T15:52:41Z

On 07/10/2017 07:01 AM, Gabriel C wrote:
> Hi,
>
> 2017-07-10 6:40 GMT+02:00 Florian Fainelli <f.fainelli@gmail.com>:
>> This reverts commit ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f "("sched/wait:
>> Rename wait_queue_t => wait_queue_entry_t") as far as the autofs user API
>> structures are concerned since that would break user space build against such
>> kernel headers.
>>
>> Fixes: ac6424b981bc ("sched/wait: Rename wait_queue_t => wait_queue_entry_t")
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
>> include/uapi/linux/auto_fs.h | 4 ++--
>> include/uapi/linux/auto_fs4.h | 4 ++--
>> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> You need revert a lot more .. that won't even compile.

Right, sorry for the sloppy submission.

>
> Looks like someone used some script to convert these :)
>
> Something like this :
>
> From 35d689b39286f94ded7609b5bed9ff0232958f9d Mon Sep 17 00:00:00 2001
> From: Gabriel Craciunescu <crazy@frugalware.org>
> Date: Mon, 10 Jul 2017 15:48:57 +0200
> Subject: [PATCH] autofs: Revert wait_queue_t => wait_queue_entry_t rename
>
> This reverts aufs parts of commit ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f
> "("sched/wait: Rename wait_queue_t => wait_queue_entry_t") as far as the
> autofs user API structures are concerned since that would break user space
> build against such kernel headers.
>
> Fixes: ac6424b981bc ("sched/wait: Rename wait_queue_t => wait_queue_entry_t")
> Signed-off-by: Gabriel Craciunescu <nix.or.die@gmail.com>

Reported-by: Florian Fainelli <f.fainelli@gmail.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>

Thanks!

> ---
> Documentation/filesystems/autofs4.txt | 12 ++++++------
> fs/autofs4/autofs_i.h | 2 +-
> fs/autofs4/waitq.c | 18 +++++++++---------
> include/uapi/linux/auto_fs.h | 4 ++--
> include/uapi/linux/auto_fs4.h | 4 ++--
> 5 files changed, 20 insertions(+), 20 deletions(-)
>
> diff --git a/Documentation/filesystems/autofs4.txt
> b/Documentation/filesystems/autofs4.txt
> index 8444dc3d57e8..f10dd590f69f 100644
> --- a/Documentation/filesystems/autofs4.txt
> +++ b/Documentation/filesystems/autofs4.txt
> @@ -316,7 +316,7 @@ For version 5, the format of the message is:
> struct autofs_v5_packet {
> int proto_version; /* Protocol version */
> int type; /* Type of packet */
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
> __u32 dev;
> __u64 ino;
> __u32 uid;
> @@ -341,12 +341,12 @@ The pipe will be set to "packet mode"
> (equivalent to passing
> `O_DIRECT`) to _pipe2(2)_ so that a read from the pipe will return at
> most one packet, and any unread portion of a packet will be discarded.
>
> -The `wait_queue_entry_token` is a unique number which can identify a
> +The `wait_queue_token` is a unique number which can identify a
> particular request to be acknowledged. When a message is sent over
> the pipe the affected dentry is marked as either "active" or
> "expiring" and other accesses to it block until the message is
> acknowledged using one of the ioctls below and the relevant
> -`wait_queue_entry_token`.
> +`wait_queue_token`.
>
> Communicating with autofs: root directory ioctls
> ------------------------------------------------
> @@ -358,7 +358,7 @@ capability, or must be the automount daemon.
> The available ioctl commands are:
>
> - **AUTOFS_IOC_READY**: a notification has been handled. The argument
> - to the ioctl command is the "wait_queue_entry_token" number
> + to the ioctl command is the "wait_queue_token" number
> corresponding to the notification being acknowledged.
> - **AUTOFS_IOC_FAIL**: similar to above, but indicates failure with
> the error code `ENOENT`.
> @@ -382,14 +382,14 @@ The available ioctl commands are:
> struct autofs_packet_expire_multi {
> int proto_version; /* Protocol version */
> int type; /* Type of packet */
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
> int len;
> char name[NAME_MAX+1];
> };
>
> is required. This is filled in with the name of something
> that can be unmounted or removed. If nothing can be expired,
> - `errno` is set to `EAGAIN`. Even though a `wait_queue_entry_token`
> + `errno` is set to `EAGAIN`. Even though a `wait_queue_token`
> is present in the structure, no "wait queue" is established
> and no acknowledgment is needed.
> - **AUTOFS_IOC_EXPIRE_MULTI**: This is similar to
> diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
> index 974f5346458a..beef981aa54f 100644
> --- a/fs/autofs4/autofs_i.h
> +++ b/fs/autofs4/autofs_i.h
> @@ -83,7 +83,7 @@ struct autofs_info {
> struct autofs_wait_queue {
> wait_queue_head_t queue;
> struct autofs_wait_queue *next;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
> /* We use the following to see what we are waiting for */
> struct qstr name;
> u32 dev;
> diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
> index 7071895b0678..24a58bf9ca72 100644
> --- a/fs/autofs4/waitq.c
> +++ b/fs/autofs4/waitq.c
> @@ -104,7 +104,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
> size_t pktsz;
>
> pr_debug("wait id = 0x%08lx, name = %.*s, type=%d\n",
> - (unsigned long) wq->wait_queue_entry_token,
> + (unsigned long) wq->wait_queue_token,
> wq->name.len, wq->name.name, type);
>
> memset(&pkt, 0, sizeof(pkt)); /* For security reasons */
> @@ -120,7 +120,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
>
> pktsz = sizeof(*mp);
>
> - mp->wait_queue_entry_token = wq->wait_queue_entry_token;
> + mp->wait_queue_token = wq->wait_queue_token;
> mp->len = wq->name.len;
> memcpy(mp->name, wq->name.name, wq->name.len);
> mp->name[wq->name.len] = '\0';
> @@ -133,7 +133,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
>
> pktsz = sizeof(*ep);
>
> - ep->wait_queue_entry_token = wq->wait_queue_entry_token;
> + ep->wait_queue_token = wq->wait_queue_token;
> ep->len = wq->name.len;
> memcpy(ep->name, wq->name.name, wq->name.len);
> ep->name[wq->name.len] = '\0';
> @@ -153,7 +153,7 @@ static void autofs4_notify_daemon(struct
> autofs_sb_info *sbi,
>
> pktsz = sizeof(*packet);
>
> - packet->wait_queue_entry_token = wq->wait_queue_entry_token;
> + packet->wait_queue_token = wq->wait_queue_token;
> packet->len = wq->name.len;
> memcpy(packet->name, wq->name.name, wq->name.len);
> packet->name[wq->name.len] = '\0';
> @@ -428,7 +428,7 @@ int autofs4_wait(struct autofs_sb_info *sbi,
> return -ENOMEM;
> }
>
> - wq->wait_queue_entry_token = autofs4_next_wait_queue;
> + wq->wait_queue_token = autofs4_next_wait_queue;
> if (++autofs4_next_wait_queue == 0)
> autofs4_next_wait_queue = 1;
> wq->next = sbi->queues;
> @@ -461,7 +461,7 @@ int autofs4_wait(struct autofs_sb_info *sbi,
> }
>
> pr_debug("new wait id = 0x%08lx, name = %.*s, nfy=%d\n",
> - (unsigned long) wq->wait_queue_entry_token, wq->name.len,
> + (unsigned long) wq->wait_queue_token, wq->name.len,
> wq->name.name, notify);
>
> /*
> @@ -471,7 +471,7 @@ int autofs4_wait(struct autofs_sb_info *sbi,
> } else {
> wq->wait_ctr++;
> pr_debug("existing wait id = 0x%08lx, name = %.*s, nfy=%d\n",
> - (unsigned long) wq->wait_queue_entry_token, wq->name.len,
> + (unsigned long) wq->wait_queue_token, wq->name.len,
> wq->name.name, notify);
> mutex_unlock(&sbi->wq_mutex);
> kfree(qstr.name);
> @@ -550,13 +550,13 @@ int autofs4_wait(struct autofs_sb_info *sbi,
> }
>
>
> -int autofs4_wait_release(struct autofs_sb_info *sbi, autofs_wqt_t
> wait_queue_entry_token, int status)
> +int autofs4_wait_release(struct autofs_sb_info *sbi, autofs_wqt_t
> wait_queue_token, int status)
> {
> struct autofs_wait_queue *wq, **wql;
>
> mutex_lock(&sbi->wq_mutex);
> for (wql = &sbi->queues; (wq = *wql) != NULL; wql = &wq->next) {
> - if (wq->wait_queue_entry_token == wait_queue_entry_token)
> + if (wq->wait_queue_token == wait_queue_token)
> break;
> }
>
> diff --git a/include/uapi/linux/auto_fs.h b/include/uapi/linux/auto_fs.h
> index 1953f8d6063b..aa63451ef20a 100644
> --- a/include/uapi/linux/auto_fs.h
> +++ b/include/uapi/linux/auto_fs.h
> @@ -26,7 +26,7 @@
> #define AUTOFS_MIN_PROTO_VERSION AUTOFS_PROTO_VERSION
>
> /*
> - * The wait_queue_entry_token (autofs_wqt_t) is part of a structure
> which is passed
> + * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
> * back to the kernel via ioctl from userspace. On architectures where 32- and
> * 64-bit userspace binaries can be executed it's important that the size of
> * autofs_wqt_t stays constant between 32- and 64-bit Linux kernels so that we
> @@ -49,7 +49,7 @@ struct autofs_packet_hdr {
>
> struct autofs_packet_missing {
> struct autofs_packet_hdr hdr;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
> int len;
> char name[NAME_MAX+1];
> };
> diff --git a/include/uapi/linux/auto_fs4.h b/include/uapi/linux/auto_fs4.h
> index 65b72d0222e7..7c6da423d54e 100644
> --- a/include/uapi/linux/auto_fs4.h
> +++ b/include/uapi/linux/auto_fs4.h
> @@ -108,7 +108,7 @@ enum autofs_notify {
> /* v4 multi expire (via pipe) */
> struct autofs_packet_expire_multi {
> struct autofs_packet_hdr hdr;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
> int len;
> char name[NAME_MAX+1];
> };
> @@ -123,7 +123,7 @@ union autofs_packet_union {
> /* autofs v5 common packet struct */
> struct autofs_v5_packet {
> struct autofs_packet_hdr hdr;
> - autofs_wqt_t wait_queue_entry_token;
> + autofs_wqt_t wait_queue_token;
> __u32 dev;
> __u64 ino;
> __u32 uid;
>

--
Florian