From: Chuck Lever <cel@kernel.org>
To: NeilBrown <neilb@ownmail.net>, Jeff Layton <jlayton@kernel.org>,
Olga Kornievskaia <okorniev@redhat.com>,
Dai Ngo <dai.ngo@oracle.com>, Tom Talpey <tom@talpey.com>
Cc: <linux-nfs@vger.kernel.org>, Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v3 11/14] lockd: Move xdr.h from include/linux/lockd/ to fs/lockd/
Date: Mon, 26 Jan 2026 14:55:32 -0500 [thread overview]
Message-ID: <20260126195535.154697-12-cel@kernel.org> (raw)
In-Reply-To: <20260126195535.154697-1-cel@kernel.org>
From: Chuck Lever <chuck.lever@oracle.com>
The lockd subsystem unnecessarily exposes internal NLM XDR type
definitions through the global include path. These definitions
are not used by any code outside fs/lockd/, making them
inappropriate for include/linux/lockd/.
Moving xdr.h to fs/lockd/ narrows the API surface and clarifies
that these types are internal implementation details. The
comment in linux/lockd/bind.h stating xdr.h was needed for
"xdr-encoded error codes" is stale: no lockd API consumers use
those codes.
A forward declaration for struct nfs_fh is added to bind.h
because its definition was previously pulled in transitively
through xdr.h. Additionally, nfs3proc.c needs an explicit
include of filelock.h for struct file_lock and FL_CLOSE, which
xdr.h previously provided.
Built and tested with lockd client/server operations. No
functional change.
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
fs/lockd/lockd.h | 2 +-
{include/linux => fs}/lockd/xdr.h | 8 +++-----
fs/nfs/nfs3proc.c | 1 +
include/linux/lockd/bind.h | 4 +---
4 files changed, 6 insertions(+), 9 deletions(-)
rename {include/linux => fs}/lockd/xdr.h (96%)
diff --git a/fs/lockd/lockd.h b/fs/lockd/lockd.h
index 460ccb701749..6f83b9a7257f 100644
--- a/fs/lockd/lockd.h
+++ b/fs/lockd/lockd.h
@@ -15,7 +15,7 @@
#include <linux/refcount.h>
#include <linux/utsname.h>
#include <linux/lockd/bind.h>
-#include <linux/lockd/xdr.h>
+#include "xdr.h"
#include <linux/sunrpc/debug.h>
#include <linux/sunrpc/svc.h>
diff --git a/include/linux/lockd/xdr.h b/fs/lockd/xdr.h
similarity index 96%
rename from include/linux/lockd/xdr.h
rename to fs/lockd/xdr.h
index 292e4e38d17d..af821ecf2a4e 100644
--- a/include/linux/lockd/xdr.h
+++ b/fs/lockd/xdr.h
@@ -1,14 +1,12 @@
/* SPDX-License-Identifier: GPL-2.0 */
/*
- * linux/include/linux/lockd/xdr.h
- *
* XDR types for the NLM protocol
*
* Copyright (C) 1996 Olaf Kirch <okir@monad.swb.de>
*/
-#ifndef LOCKD_XDR_H
-#define LOCKD_XDR_H
+#ifndef _LOCKD_XDR_H
+#define _LOCKD_XDR_H
#include <linux/fs.h>
#include <linux/filelock.h>
@@ -110,4 +108,4 @@ bool nlmsvc_encode_res(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nlmsvc_encode_void(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nlmsvc_encode_shareres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
-#endif /* LOCKD_XDR_H */
+#endif /* _LOCKD_XDR_H */
diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c
index 1181f9cc6dbd..c54808db0260 100644
--- a/fs/nfs/nfs3proc.c
+++ b/fs/nfs/nfs3proc.c
@@ -16,6 +16,7 @@
#include <linux/nfs3.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_page.h>
+#include <linux/filelock.h>
#include <linux/lockd/bind.h>
#include <linux/nfs_mount.h>
#include <linux/freezer.h>
diff --git a/include/linux/lockd/bind.h b/include/linux/lockd/bind.h
index 077da0696f12..38d69fe8dfd5 100644
--- a/include/linux/lockd/bind.h
+++ b/include/linux/lockd/bind.h
@@ -11,10 +11,8 @@
#define LINUX_LOCKD_BIND_H
#include <linux/lockd/nlm.h>
-/* need xdr-encoded error codes too, so... */
-#include <linux/lockd/xdr.h>
-/* Dummy declarations */
+struct nfs_fh;
struct svc_rqst;
struct rpc_task;
struct rpc_clnt;
--
2.52.0
next prev parent reply other threads:[~2026-01-26 19:55 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-26 19:55 [PATCH v3 00/14] Clarify module API boundaries Chuck Lever
2026-01-26 19:55 ` [PATCH v3 01/14] lockd: Simplify cast_status() in svcproc.c Chuck Lever
2026-01-26 19:55 ` [PATCH v3 02/14] lockd: Relocate and rename nlm_drop_reply Chuck Lever
2026-01-26 19:55 ` [PATCH v3 03/14] lockd: Introduce nlm__int__deadlock Chuck Lever
2026-01-26 19:55 ` [PATCH v3 04/14] lockd: Have nlm_fopen() return errno values Chuck Lever
2026-01-26 19:55 ` [PATCH v3 05/14] lockd: Relocate nlmsvc_unlock API declarations Chuck Lever
2026-01-26 19:55 ` [PATCH v3 06/14] NFS: Use nlmclnt_shutdown_rpc_clnt() to safely shut down NLM Chuck Lever
2026-01-26 19:55 ` [PATCH v3 07/14] lockd: Move xdr4.h from include/linux/lockd/ to fs/lockd/ Chuck Lever
2026-01-26 19:55 ` [PATCH v3 08/14] lockd: Move share.h " Chuck Lever
2026-01-26 19:55 ` [PATCH v3 09/14] lockd: Relocate include/linux/lockd/lockd.h Chuck Lever
2026-01-26 19:55 ` [PATCH v3 10/14] lockd: Remove lockd/debug.h Chuck Lever
2026-01-26 19:55 ` Chuck Lever [this message]
2026-01-27 3:12 ` [PATCH v3 11/14] lockd: Move xdr.h from include/linux/lockd/ to fs/lockd/ kernel test robot
2026-01-27 4:56 ` kernel test robot
2026-01-26 19:55 ` [PATCH v3 12/14] lockd: Make linux/lockd/nlm.h an internal header Chuck Lever
2026-01-26 19:55 ` [PATCH v3 13/14] lockd: Move nlm4svc_set_file_lock_range() Chuck Lever
2026-01-26 19:55 ` [PATCH v3 14/14] lockd: Relocate svc_version definitions to XDR layer Chuck Lever
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=20260126195535.154697-12-cel@kernel.org \
--to=cel@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=dai.ngo@oracle.com \
--cc=jlayton@kernel.org \
--cc=linux-nfs@vger.kernel.org \
--cc=neilb@ownmail.net \
--cc=okorniev@redhat.com \
--cc=tom@talpey.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.