mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: BAREBOX <barebox@lists.infradead.org>
Subject: [PATCH 3/4] fs: nfs: use dev_* for messages
Date: Tue, 04 Nov 2025 09:08:07 +0100	[thread overview]
Message-ID: <20251104-nfs-v1-3-3e69e5c82a41@pengutronix.de> (raw)
In-Reply-To: <20251104-nfs-v1-0-3e69e5c82a41@pengutronix.de>

nfs uses a mixture of pr_*(), printf() and debug() functions for
messageds. Consistently use dev_*().

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
 fs/nfs.c | 77 ++++++++++++++++++++++++++++++++++++++--------------------------
 1 file changed, 46 insertions(+), 31 deletions(-)

diff --git a/fs/nfs.c b/fs/nfs.c
index 163fd2182c0fc63d88725f0bba6ad5d1a71e2309..c9dc5d14ccec67e252750ce2bed076cf0b63cbd8 100644
--- a/fs/nfs.c
+++ b/fs/nfs.c
@@ -136,6 +136,7 @@ struct packet {
 };
 
 struct nfs_priv {
+	struct device *dev;
 	struct net_connection *con;
 	IPaddr_t server;
 	char *path;
@@ -366,8 +367,10 @@ static __be32 *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes)
 /*
  * name is expected to point to a buffer with a size of at least 256 bytes.
  */
-static int decode_filename(struct xdr_stream *xdr, char *name, u32 *length)
+static int decode_filename(struct nfs_priv *npriv, struct xdr_stream *xdr,
+			   char *name, u32 *length)
 {
+	struct device *dev = npriv->dev;
 	__be32 *p;
 	u32 count;
 
@@ -386,11 +389,11 @@ static int decode_filename(struct xdr_stream *xdr, char *name, u32 *length)
 	return 0;
 
 out_nametoolong:
-	pr_err("%s: returned a too long filename: %u\n", __func__, count);
+	dev_err(dev, "%s: returned a too long filename: %u\n", __func__, count);
 	return -ENAMETOOLONG;
 
 out_overflow:
-	pr_err("%s: premature end of packet\n", __func__);
+	dev_err(dev, "%s: premature end of packet\n", __func__);
 	return -EIO;
 }
 
@@ -502,6 +505,7 @@ static void nfs_free_packet(struct packet *packet)
 static struct packet *rpc_req(struct nfs_priv *npriv, int rpc_prog,
 			      int rpc_proc, uint32_t *data, int datalen)
 {
+	struct device *dev = npriv->dev;
 	struct rpc_call pkt;
 	unsigned short dport;
 	int ret;
@@ -517,7 +521,7 @@ static struct packet *rpc_req(struct nfs_priv *npriv, int rpc_prog,
 	pkt.prog = hton32(rpc_prog);
 	pkt.proc = hton32(rpc_proc);
 
-	debug("%s: prog: %d, proc: %d\n", __func__, rpc_prog, rpc_proc);
+	dev_dbg(dev, "%s: prog: %d, proc: %d\n", __func__, rpc_prog, rpc_proc);
 
 	if (rpc_prog == PROG_PORTMAP) {
 		dport = SUNRPC_PORT;
@@ -585,6 +589,7 @@ static struct packet *rpc_req(struct nfs_priv *npriv, int rpc_prog,
  */
 static int rpc_lookup_req(struct nfs_priv *npriv, uint32_t prog, uint32_t ver)
 {
+	struct device *dev = npriv->dev;
 	uint32_t data[16];
 	struct packet *nfs_packet;
 	uint32_t port;
@@ -613,7 +618,7 @@ static int rpc_lookup_req(struct nfs_priv *npriv, uint32_t prog, uint32_t ver)
 	nfs_free_packet(nfs_packet);
 
 	if (port == 0) {
-		pr_warn("No UDP port for RPC program %i! "
+		dev_warn(dev, "No UDP port for RPC program %i! "
 		        "Is your NFS server TCP only?\n", prog);
 		return -ENOENT;
 	}
@@ -686,8 +691,10 @@ static const struct {
 	{ 0x00800, S_ISUID },
 };
 
-static int nfs_fattr3_to_stat(uint32_t *p, struct inode *inode)
+static int nfs_fattr3_to_stat(struct nfs_priv *npriv, uint32_t *p,
+			      struct inode *inode)
 {
+	struct device *dev = npriv->dev;
 	uint32_t mode;
 	size_t i;
 
@@ -718,7 +725,7 @@ static int nfs_fattr3_to_stat(uint32_t *p, struct inode *inode)
 		inode->i_mode = S_IFIFO;
 		break;
 	default:
-		printf("%s: invalid mode %x\n",
+		dev_err(dev, "%s: invalid mode %x\n",
 				__func__, ntoh32(net_read_uint32(p + 0)));
 		return -EIO;
 	}
@@ -736,7 +743,8 @@ static int nfs_fattr3_to_stat(uint32_t *p, struct inode *inode)
 	return 0;
 }
 
-static int nfs_read_post_op_attr(struct packet *nfs_packet, struct inode *inode)
+static int nfs_read_post_op_attr(struct nfs_priv *npriv, struct packet *nfs_packet,
+				 struct inode *inode)
 {
 	void *p;
 
@@ -757,7 +765,7 @@ static int nfs_read_post_op_attr(struct packet *nfs_packet, struct inode *inode)
 		p = nfs_packet_read(nfs_packet, 21 * sizeof(uint32_t));
 		if (!p)
 			return -EINVAL;
-		nfs_fattr3_to_stat(p, inode);
+		nfs_fattr3_to_stat(npriv, p, inode);
 	}
 
 	return 0;
@@ -768,6 +776,7 @@ static int nfs_read_post_op_attr(struct packet *nfs_packet, struct inode *inode)
  */
 static int nfs_mount_req(struct nfs_priv *npriv)
 {
+	struct device *dev = npriv->dev;
 	uint32_t data[1024];
 	uint32_t *p, status;
 	int len;
@@ -777,7 +786,7 @@ static int nfs_mount_req(struct nfs_priv *npriv)
 
 	pathlen = strlen(npriv->path);
 
-	debug("%s: %s\n", __func__, npriv->path);
+	dev_dbg(dev, "%s: %s\n", __func__, npriv->path);
 
 	p = &(data[0]);
 	p = rpc_add_credentials(p);
@@ -807,7 +816,7 @@ static int nfs_mount_req(struct nfs_priv *npriv)
 
 	status = ntoh32(net_read_uint32(p));
 	if (status != NFS3_OK) {
-		pr_err("Mounting failed: %s\n", nfserrstr(status, &ret));
+		dev_err(dev, "Mounting failed: %s\n", nfserrstr(status, &ret));
 		goto err_free_packet;
 	}
 
@@ -819,7 +828,7 @@ static int nfs_mount_req(struct nfs_priv *npriv)
 
 	npriv->rootfh.size = ntoh32(net_read_uint32(p));
 	if (npriv->rootfh.size > NFS3_FHSIZE) {
-		printf("%s: file handle too big: %lu\n",
+		dev_err(dev, "%s: file handle too big: %lu\n",
 		       __func__, (unsigned long)npriv->rootfh.size);
 		ret = -EIO;
 		goto err_free_packet;
@@ -875,6 +884,7 @@ static void nfs_umount_req(struct nfs_priv *npriv)
 static int nfs_lookup_req(struct nfs_priv *npriv, struct nfs_fh *fh,
 			  const char *filename, struct inode *inode)
 {
+	struct device *dev = npriv->dev;
 	struct nfs_inode *ninode = nfsi(inode);
 	uint32_t data[1024];
 	uint32_t *p, status;
@@ -928,7 +938,7 @@ static int nfs_lookup_req(struct nfs_priv *npriv, struct nfs_fh *fh,
 
 	status = ntoh32(net_read_uint32(p));
 	if (status != NFS3_OK) {
-		pr_err("Lookup failed: %s\n", nfserrstr(status, &ret));
+		dev_err(dev, "Lookup failed: %s\n", nfserrstr(status, &ret));
 		goto err_free_packet;
 	}
 
@@ -940,7 +950,7 @@ static int nfs_lookup_req(struct nfs_priv *npriv, struct nfs_fh *fh,
 
 	ninode->fh.size = ntoh32(net_read_uint32(p));
 	if (ninode->fh.size > NFS3_FHSIZE) {
-		debug("%s: file handle too big: %u\n", __func__,
+		dev_dbg(dev, "%s: file handle too big: %u\n", __func__,
 		      ninode->fh.size);
 		ret = -EIO;
 		goto err_free_packet;
@@ -956,7 +966,7 @@ static int nfs_lookup_req(struct nfs_priv *npriv, struct nfs_fh *fh,
 
 	nfs_read_align(nfs_packet, 4);
 
-	nfs_read_post_op_attr(nfs_packet, inode);
+	nfs_read_post_op_attr(npriv, nfs_packet, inode);
 
 	ret = 0;
 
@@ -972,6 +982,7 @@ static int nfs_lookup_req(struct nfs_priv *npriv, struct nfs_fh *fh,
  */
 static void *nfs_readdirattr_req(struct nfs_priv *npriv, struct nfs_dir *dir)
 {
+	struct device *dev = npriv->dev;
 	uint32_t data[1024];
 	uint32_t *p, status;
 	int len;
@@ -1040,12 +1051,12 @@ static void *nfs_readdirattr_req(struct nfs_priv *npriv, struct nfs_dir *dir)
 
 	status = ntoh32(net_read_uint32(p));
 	if (status != NFS3_OK) {
-		pr_err("Readdir failed: %s\n", nfserrstr(status, NULL));
+		dev_err(dev, "Readdir failed: %s\n", nfserrstr(status, NULL));
 		ret = -EIO;
 		goto err_free_packet;
 	}
 
-	ret = nfs_read_post_op_attr(nfs_packet, NULL);
+	ret = nfs_read_post_op_attr(npriv, nfs_packet, NULL);
 	if (ret)
 		goto err_free_packet;
 
@@ -1077,6 +1088,8 @@ static void *nfs_readdirattr_req(struct nfs_priv *npriv, struct nfs_dir *dir)
 static int nfs_read_req(struct file_priv *priv, uint64_t offset,
 		uint32_t readlen)
 {
+	struct nfs_priv *npriv = priv->npriv;
+	struct device *dev = npriv->dev;
 	uint32_t data[1024];
 	uint32_t *p, status;
 	int len, ret;
@@ -1129,11 +1142,11 @@ static int nfs_read_req(struct file_priv *priv, uint64_t offset,
 
 	status = ntoh32(net_read_uint32(p));
 	if (status != NFS3_OK) {
-		pr_err("Read failed: %s\n", nfserrstr(status, &ret));
+		dev_err(dev, "Read failed: %s\n", nfserrstr(status, &ret));
 		goto err_free_packet;
 	}
 
-	ret = nfs_read_post_op_attr(nfs_packet, NULL);
+	ret = nfs_read_post_op_attr(npriv, nfs_packet, NULL);
 	if (ret) {
 		ret = -EINVAL;
 		goto err_free_packet;
@@ -1208,6 +1221,7 @@ static void nfs_do_close(struct file_priv *priv)
 static int nfs_readlink_req(struct nfs_priv *npriv, struct nfs_fh *fh,
 			    char **target)
 {
+	struct device *dev = npriv->dev;
 	uint32_t data[1024];
 	uint32_t *p, status;
 	uint32_t len;
@@ -1254,11 +1268,11 @@ static int nfs_readlink_req(struct nfs_priv *npriv, struct nfs_fh *fh,
 
 	status = ntoh32(net_read_uint32(p));
 	if (status != NFS3_OK) {
-		pr_err("Readlink failed: %s\n", nfserrstr(status, &ret));
+		dev_err(dev, "Readlink failed: %s\n", nfserrstr(status, &ret));
 		goto err_free_packet;
 	}
 
-	nfs_read_post_op_attr(nfs_packet, NULL);
+	nfs_read_post_op_attr(npriv, nfs_packet, NULL);
 
 	p = nfs_packet_read(nfs_packet, sizeof(uint32_t));
 	if (!p) {
@@ -1408,7 +1422,7 @@ static int nfs_iterate(struct file *file, struct dir_context *ctx)
 			if (!p)
 				goto err_eop;
 
-			ret = decode_filename(xdr, name, &len);
+			ret = decode_filename(npriv, xdr, name, &len);
 			if (ret)
 				goto out;
 
@@ -1586,10 +1600,11 @@ static int nfs_probe(struct device *dev)
 	int ret;
 
 	dev->priv = npriv;
+	npriv->dev = dev;
 
 	INIT_LIST_HEAD(&npriv->packets);
 
-	debug("nfs: mount: %s\n", fsdev->backingstore);
+	dev_dbg(dev, "mount: %s\n", fsdev->backingstore);
 
 	path = strchr(tmp, ':');
 	if (!path) {
@@ -1603,11 +1618,11 @@ static int nfs_probe(struct device *dev)
 
 	ret = resolv(tmp, &npriv->server);
 	if (ret) {
-		printf("cannot resolve \"%s\": %pe\n", tmp, ERR_PTR(ret));
+		dev_err(dev, "cannot resolve \"%s\": %pe\n", tmp, ERR_PTR(ret));
 		goto err1;
 	}
 
-	debug("nfs: server: %s path: %s\n", tmp, npriv->path);
+	dev_dbg(dev, "server: %s path: %s\n", tmp, npriv->path);
 
 	npriv->con = net_udp_new(npriv->server, SUNRPC_PORT, nfs_handler, npriv);
 	if (IS_ERR(npriv->con)) {
@@ -1623,7 +1638,7 @@ static int nfs_probe(struct device *dev)
 		if (!npriv->mount_port) {
 			ret = rpc_lookup_req(npriv, PROG_MOUNT, 3);
 			if (ret < 0) {
-				printf("lookup mount port failed with %d\n", ret);
+				dev_err(dev, "lookup mount port failed with %d\n", ret);
 				goto err2;
 			}
 			npriv->mount_port = ret;
@@ -1635,7 +1650,7 @@ static int nfs_probe(struct device *dev)
 		if (!npriv->nfs_port) {
 			ret = rpc_lookup_req(npriv, PROG_NFS, 3);
 			if (ret < 0) {
-				printf("lookup nfs port failed with %d\n", ret);
+				dev_err(dev, "lookup nfs port failed with %d\n", ret);
 				goto err2;
 			}
 			npriv->nfs_port = ret;
@@ -1644,7 +1659,7 @@ static int nfs_probe(struct device *dev)
 		}
 	} else {
 		if (nfsport_default > U16_MAX) {
-			printf("invalid NFS port: %d\n", nfsport_default);
+			dev_err(dev, "invalid NFS port: %d\n", nfsport_default);
 			return -EINVAL;
 		}
 
@@ -1652,12 +1667,12 @@ static int nfs_probe(struct device *dev)
 		npriv->manual_nfs_port = npriv->manual_mount_port = 1;
 	}
 
-	debug("mount port: %hu\n", npriv->mount_port);
-	debug("nfs port: %d\n", npriv->nfs_port);
+	dev_dbg(dev, "mount port: %hu\n", npriv->mount_port);
+	dev_dbg(dev, "nfs port: %d\n", npriv->nfs_port);
 
 	ret = nfs_mount_req(npriv);
 	if (ret) {
-		printf("mounting failed with %d\n", ret);
+		dev_err(dev, "mounting failed with %d\n", ret);
 		goto err2;
 	}
 

-- 
2.47.3




  parent reply	other threads:[~2025-11-04  8:08 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-04  8:08 [PATCH 0/4] fs: nfs: Fix buffer overflows Sascha Hauer
2025-11-04  8:08 ` [PATCH 1/4] fs: nfs: drop PROG_NFS special casing Sascha Hauer
2025-11-04  8:08 ` [PATCH 2/4] fs: nfs: do not read past packets Sascha Hauer
2025-11-04  8:08 ` Sascha Hauer [this message]
2025-11-04  8:08 ` [PATCH 4/4] fs: nfs: reduce unwanted message to debug level Sascha Hauer

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=20251104-nfs-v1-3-3e69e5c82a41@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    /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