From: Jeff Layton <jlayton@kernel.org>
To: Chuck Lever <chuck.lever@oracle.com>, linux-nfs@vger.kernel.org
Cc: trondmy@hammerspace.com
Subject: Re: [PATCH v2 02/15] SUNRPC: Widen rpc_task::tk_flags
Date: Wed, 06 Jul 2022 13:14:37 -0400 [thread overview]
Message-ID: <b586b5afbec012175e6014c9ba51af8963bfd4a3.camel@kernel.org> (raw)
In-Reply-To: <165452704158.1496.8199298253321400554.stgit@oracle-102.nfsv4.dev>
On Mon, 2022-06-06 at 10:50 -0400, Chuck Lever wrote:
> There is just one unused bit left in rpc_task::tk_flags, and I will
> need two in subsequent patches. Double the width of the field to
> accommodate more flag bits.
>
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
> include/linux/sunrpc/clnt.h | 6 ++++--
> include/linux/sunrpc/sched.h | 32 ++++++++++++++++----------------
> net/sunrpc/clnt.c | 11 ++++++-----
> net/sunrpc/debugfs.c | 2 +-
> 4 files changed, 27 insertions(+), 24 deletions(-)
>
> diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
> index 90501404fa49..cbdd20dc84b7 100644
> --- a/include/linux/sunrpc/clnt.h
> +++ b/include/linux/sunrpc/clnt.h
> @@ -193,11 +193,13 @@ void rpc_prepare_reply_pages(struct rpc_rqst *req, struct page **pages,
> unsigned int hdrsize);
> void rpc_call_start(struct rpc_task *);
> int rpc_call_async(struct rpc_clnt *clnt,
> - const struct rpc_message *msg, int flags,
> + const struct rpc_message *msg,
> + unsigned int flags,
> const struct rpc_call_ops *tk_ops,
> void *calldata);
> int rpc_call_sync(struct rpc_clnt *clnt,
> - const struct rpc_message *msg, int flags);
> + const struct rpc_message *msg,
> + unsigned int flags);
> struct rpc_task *rpc_call_null(struct rpc_clnt *clnt, struct rpc_cred *cred,
> int flags);
> int rpc_restart_call_prepare(struct rpc_task *);
> diff --git a/include/linux/sunrpc/sched.h b/include/linux/sunrpc/sched.h
> index 1d7a3e51b795..d4b7ebd0a99c 100644
> --- a/include/linux/sunrpc/sched.h
> +++ b/include/linux/sunrpc/sched.h
> @@ -82,7 +82,7 @@ struct rpc_task {
> ktime_t tk_start; /* RPC task init timestamp */
>
> pid_t tk_owner; /* Process id for batching tasks */
> - unsigned short tk_flags; /* misc flags */
> + unsigned int tk_flags; /* misc flags */
> unsigned short tk_timeouts; /* maj timeouts */
>
> #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS)
> @@ -112,27 +112,27 @@ struct rpc_task_setup {
> const struct rpc_call_ops *callback_ops;
> void *callback_data;
> struct workqueue_struct *workqueue;
> - unsigned short flags;
> + unsigned int flags;
> signed char priority;
> };
>
> /*
> * RPC task flags
> */
> -#define RPC_TASK_ASYNC 0x0001 /* is an async task */
> -#define RPC_TASK_SWAPPER 0x0002 /* is swapping in/out */
> -#define RPC_TASK_MOVEABLE 0x0004 /* nfs4.1+ rpc tasks */
> -#define RPC_TASK_NULLCREDS 0x0010 /* Use AUTH_NULL credential */
> -#define RPC_CALL_MAJORSEEN 0x0020 /* major timeout seen */
> -#define RPC_TASK_DYNAMIC 0x0080 /* task was kmalloc'ed */
> -#define RPC_TASK_NO_ROUND_ROBIN 0x0100 /* send requests on "main" xprt */
> -#define RPC_TASK_SOFT 0x0200 /* Use soft timeouts */
> -#define RPC_TASK_SOFTCONN 0x0400 /* Fail if can't connect */
> -#define RPC_TASK_SENT 0x0800 /* message was sent */
> -#define RPC_TASK_TIMEOUT 0x1000 /* fail with ETIMEDOUT on timeout */
> -#define RPC_TASK_NOCONNECT 0x2000 /* return ENOTCONN if not connected */
> -#define RPC_TASK_NO_RETRANS_TIMEOUT 0x4000 /* wait forever for a reply */
> -#define RPC_TASK_CRED_NOREF 0x8000 /* No refcount on the credential */
> +#define RPC_TASK_ASYNC 0x00000001 /* is an async task */
> +#define RPC_TASK_SWAPPER 0x00000002 /* is swapping in/out */
> +#define RPC_TASK_MOVEABLE 0x00000004 /* nfs4.1+ rpc tasks */
> +#define RPC_TASK_NULLCREDS 0x00000010 /* Use AUTH_NULL credential */
> +#define RPC_CALL_MAJORSEEN 0x00000020 /* major timeout seen */
> +#define RPC_TASK_DYNAMIC 0x00000080 /* task was kmalloc'ed */
> +#define RPC_TASK_NO_ROUND_ROBIN 0x00000100 /* send requests on "main" xprt */
> +#define RPC_TASK_SOFT 0x00000200 /* Use soft timeouts */
> +#define RPC_TASK_SOFTCONN 0x00000400 /* Fail if can't connect */
> +#define RPC_TASK_SENT 0x00000800 /* message was sent */
> +#define RPC_TASK_TIMEOUT 0x00001000 /* fail with ETIMEDOUT on timeout */
> +#define RPC_TASK_NOCONNECT 0x00002000 /* return ENOTCONN if not connected */
> +#define RPC_TASK_NO_RETRANS_TIMEOUT 0x00004000 /* wait forever for a reply */
> +#define RPC_TASK_CRED_NOREF 0x00008000 /* No refcount on the credential */
>
> #define RPC_IS_ASYNC(t) ((t)->tk_flags & RPC_TASK_ASYNC)
> #define RPC_IS_SWAPPER(t) ((t)->tk_flags & RPC_TASK_SWAPPER)
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index ed13d55df720..8fd45de66882 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -1161,7 +1161,8 @@ EXPORT_SYMBOL_GPL(rpc_run_task);
> * @msg: RPC call parameters
> * @flags: RPC call flags
> */
> -int rpc_call_sync(struct rpc_clnt *clnt, const struct rpc_message *msg, int flags)
> +int rpc_call_sync(struct rpc_clnt *clnt, const struct rpc_message *msg,
> + unsigned int flags)
> {
> struct rpc_task *task;
> struct rpc_task_setup task_setup_data = {
> @@ -1196,9 +1197,9 @@ EXPORT_SYMBOL_GPL(rpc_call_sync);
> * @tk_ops: RPC call ops
> * @data: user call data
> */
> -int
> -rpc_call_async(struct rpc_clnt *clnt, const struct rpc_message *msg, int flags,
> - const struct rpc_call_ops *tk_ops, void *data)
> +int rpc_call_async(struct rpc_clnt *clnt, const struct rpc_message *msg,
> + unsigned int flags, const struct rpc_call_ops *tk_ops,
> + void *data)
> {
> struct rpc_task *task;
> struct rpc_task_setup task_setup_data = {
> @@ -3079,7 +3080,7 @@ static void rpc_show_task(const struct rpc_clnt *clnt,
> if (RPC_IS_QUEUED(task))
> rpc_waitq = rpc_qname(task->tk_waitqueue);
>
> - printk(KERN_INFO "%5u %04x %6d %8p %8p %8ld %8p %sv%u %s a:%ps q:%s\n",
> + printk(KERN_INFO "%5u %08x %6d %8p %8p %8ld %8p %sv%u %s a:%ps q:%s\n",
> task->tk_pid, task->tk_flags, task->tk_status,
> clnt, task->tk_rqstp, rpc_task_timeout(task), task->tk_ops,
> clnt->cl_program->name, clnt->cl_vers, rpc_proc_name(task),
> diff --git a/net/sunrpc/debugfs.c b/net/sunrpc/debugfs.c
> index 7dc9cc929bfd..8b66235a3a49 100644
> --- a/net/sunrpc/debugfs.c
> +++ b/net/sunrpc/debugfs.c
> @@ -30,7 +30,7 @@ tasks_show(struct seq_file *f, void *v)
> if (task->tk_rqstp)
> xid = be32_to_cpu(task->tk_rqstp->rq_xid);
>
> - seq_printf(f, "%5u %04x %6d 0x%x 0x%x %8ld %ps %sv%u %s a:%ps q:%s\n",
> + seq_printf(f, "%5u %08x %6d 0x%x 0x%x %8ld %ps %sv%u %s a:%ps q:%s\n",
> task->tk_pid, task->tk_flags, task->tk_status,
> clnt->cl_clid, xid, rpc_task_timeout(task), task->tk_ops,
> clnt->cl_program->name, clnt->cl_vers, rpc_proc_name(task),
>
>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
next prev parent reply other threads:[~2022-07-06 17:14 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-06 14:50 [PATCH v2 00/15] RPC-with-TLS client side Chuck Lever
2022-06-06 14:50 ` [PATCH v2 01/15] SUNRPC: Fail faster on bad verifier Chuck Lever
2022-07-06 17:12 ` Jeff Layton
2022-06-06 14:50 ` [PATCH v2 02/15] SUNRPC: Widen rpc_task::tk_flags Chuck Lever
2022-07-06 17:14 ` Jeff Layton [this message]
2022-06-06 14:50 ` [PATCH v2 03/15] SUNRPC: Replace dprintk() call site in xs_data_ready Chuck Lever
2022-07-06 17:19 ` Jeff Layton
2022-07-06 18:10 ` Chuck Lever III
2022-06-06 14:50 ` [PATCH v2 04/15] NFS: Replace fs_context-related dprintk() call sites with tracepoints Chuck Lever
2022-07-06 18:44 ` Jeff Layton
2022-06-06 14:51 ` [PATCH v2 05/15] SUNRPC: Plumb an API for setting transport layer security Chuck Lever
2022-07-18 19:46 ` Jeff Layton
2022-06-06 14:51 ` [PATCH v2 06/15] SUNRPC: Trace the rpc_create_args Chuck Lever
2022-07-06 18:57 ` Jeff Layton
2022-07-06 19:04 ` Chuck Lever III
2022-06-06 14:51 ` [PATCH v2 07/15] SUNRPC: Refactor rpc_call_null_helper() Chuck Lever
2022-07-18 19:44 ` Jeff Layton
2022-06-06 14:51 ` [PATCH v2 08/15] SUNRPC: Add RPC client support for the RPC_AUTH_TLS auth flavor Chuck Lever
2022-06-06 14:51 ` [PATCH v2 09/15] SUNRPC: Ignore data_ready callbacks during TLS handshakes Chuck Lever
2022-06-06 14:51 ` [PATCH v2 10/15] SUNRPC: Capture cmsg metadata on client-side receive Chuck Lever
2022-07-18 19:53 ` Jeff Layton
2022-07-19 21:43 ` Chuck Lever III
2022-06-06 14:51 ` [PATCH v2 11/15] SUNRPC: Add a connect worker function for TLS Chuck Lever
2022-06-06 14:51 ` [PATCH v2 12/15] SUNRPC: Add RPC-with-TLS support to xprtsock.c Chuck Lever
2022-07-12 17:00 ` Benjamin Coddington
2022-07-18 20:10 ` Jeff Layton
2022-07-19 21:31 ` Chuck Lever III
2022-06-06 14:51 ` [PATCH v2 13/15] SUNRPC: Add RPC-with-TLS tracepoints Chuck Lever
2022-06-06 14:51 ` [PATCH v2 14/15] NFS: Have struct nfs_client carry a TLS policy field Chuck Lever
2022-06-06 14:52 ` [PATCH v2 15/15] NFS: Add an "xprtsec=" NFS mount option Chuck Lever
2022-07-18 20:24 ` Jeff Layton
2022-07-18 20:35 ` Chuck Lever III
2022-07-12 12:36 ` [PATCH v2 00/15] RPC-with-TLS client side Jeff Layton
2022-07-12 13:48 ` Chuck Lever III
2022-07-13 0:51 ` Rick Macklem
2022-07-13 13:22 ` Benjamin Coddington
2022-07-13 13:32 ` Chuck Lever III
2022-07-14 16:24 ` Benjamin Coddington
2022-07-18 20:25 ` Jeff Layton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b586b5afbec012175e6014c9ba51af8963bfd4a3.camel@kernel.org \
--to=jlayton@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.org \
--cc=trondmy@hammerspace.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox