mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
NFSD: Tighten header includes in localio.c
As a prerequisite to converting NFSD to use xdrgen more broadly, NFSD source files should not depend on NFS client headers. fs/nfsd/localio.c is server-side LOCALIO code, yet it pulled in three of them: <linux/nfs_fs.h>, the client inode header (struct nfs_inode, NFS_I(), writeback helpers), which server code never uses; <linux/nfs_xdr.h>, whose only referenced symbol is decode_opaque_fixed(), a static inline that exists to remap the error return to -EIO for client call sites; and the catch-all <linux/nfs.h>. Convert the UUID decoder to call the canonical SUNRPC primitive xdr_stream_decode_opaque_fixed() directly. It is shared by client and server, performs the identical bounds check, and is already reachable through <linux/sunrpc/clnt.h>. With the wrapper gone, localio.c references no symbol from <linux/nfs_xdr.h>, and with that header gone, none of the NFSv3 definitions its structs embed are needed here. Drop all three client includes and add what the file actually uses: struct nfs_fh comes from <linux/nfs_fh.h>, included directly rather than through nfslocalio.h's conditional re-export, and NFS4_FHSIZE from <linux/nfs4.h>. enum nfs_stat and nfs_stat_to_errno continue to come from the already-included <linux/nfs_common.h>. Reviewed-by: NeilBrown <neil@brown.name> Reviewed-by: Mike Snitzer <snitzer@kernel.org> Link: https://patch.msgid.link/20260728165911.462534-4-cel@kernel.org Signed-off-by: Chuck Lever <cel@kernel.org>
This commit is contained in:
parent
c019e35ac2
commit
0922565599
|
|
@ -11,11 +11,10 @@
|
|||
#include <linux/exportfs.h>
|
||||
#include <linux/sunrpc/svcauth.h>
|
||||
#include <linux/sunrpc/clnt.h>
|
||||
#include <linux/nfs.h>
|
||||
#include <linux/nfs4.h>
|
||||
#include <linux/nfs_common.h>
|
||||
#include <linux/nfs_fh.h>
|
||||
#include <linux/nfslocalio.h>
|
||||
#include <linux/nfs_fs.h>
|
||||
#include <linux/nfs_xdr.h>
|
||||
#include <linux/string.h>
|
||||
|
||||
#include "nfsd.h"
|
||||
|
|
@ -179,7 +178,7 @@ static bool localio_decode_uuidarg(struct svc_rqst *rqstp,
|
|||
struct localio_uuidarg *argp = rqstp->rq_argp;
|
||||
u8 uuid[UUID_SIZE];
|
||||
|
||||
if (decode_opaque_fixed(xdr, uuid, UUID_SIZE))
|
||||
if (xdr_stream_decode_opaque_fixed(xdr, uuid, UUID_SIZE) < 0)
|
||||
return false;
|
||||
import_uuid(&argp->uuid, uuid);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user