<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Ah, Thanks&nbsp;for the feedback, Christopher.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Immad.</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Christoph Böhmwalder &lt;christoph.boehmwalder@linbit.com&gt;<br>
<b>Sent:</b> Monday, May 15, 2023 2:26 PM<br>
<b>To:</b> mirimmad@outlook.com &lt;mirimmad@outlook.com&gt;<br>
<b>Cc:</b> axboe@kernel.dk &lt;axboe@kernel.dk&gt;; drbd-dev@lists.linbit.com &lt;drbd-dev@lists.linbit.com&gt;; lars.ellenberg@linbit.com &lt;lars.ellenberg@linbit.com&gt;; linux-block@vger.kernel.org &lt;linux-block@vger.kernel.org&gt;; linux-kernel@vger.kernel.org &lt;linux-kernel@vger.kernel.org&gt;;
 mirimmad17@gmail.com &lt;mirimmad17@gmail.com&gt;; philipp.reisner@linbit.com &lt;philipp.reisner@linbit.com&gt;; skhan@linuxfoundation.org &lt;skhan@linuxfoundation.org&gt;<br>
<b>Subject:</b> Re: [PATCH v2] drdb: fix debugfs_create_dir and debugfs_create_symlink error handling</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Am 14.05.23 um 16:10 schrieb mirimmad@outlook.com:<br>
&gt; From: Immad Mir &lt;mirimmad17@gmail.com&gt;<br>
&gt; <br>
&gt; debugfs_create_dir and debugfs_create_symlink return ERR_PTR incase of<br>
&gt; a failure which must be checked with the inline function IS_ERR. This<br>
&gt; patch attempts to do the same.<br>
&gt; <br>
&gt; Signed-off-by: Immad Mir &lt;mirimmad17@gmail.com&gt;<br>
&gt; ---<br>
&gt; Changes in v2:<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; - Fix indentation<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; - Fix potential memory leak<br>
&gt; <br>
&gt;&nbsp; drivers/block/drbd/drbd_debugfs.c | 13 ++++++++++---<br>
&gt;&nbsp; 1 file changed, 10 insertions(+), 3 deletions(-)<br>
&gt; <br>
&gt; diff --git a/drivers/block/drbd/drbd_debugfs.c b/drivers/block/drbd/drbd_debugfs.c<br>
&gt; index 12460b584..ab431a3f2 100644<br>
&gt; --- a/drivers/block/drbd/drbd_debugfs.c<br>
&gt; +++ b/drivers/block/drbd/drbd_debugfs.c<br>
&gt; @@ -781,6 +781,7 @@ void drbd_debugfs_device_add(struct drbd_device *device)<br>
&gt; <br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; snprintf(vnr_buf, sizeof(vnr_buf), &quot;%u&quot;, device-&gt;vnr);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dentry = debugfs_create_dir(vnr_buf, vols_dir);<br>
&gt; +&nbsp;&nbsp;&nbsp; if (IS_ERR(dentry)) goto fail;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device-&gt;debugfs_vol = dentry;<br>
&gt; <br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; snprintf(minor_buf, sizeof(minor_buf), &quot;%u&quot;, device-&gt;minor);<br>
&gt; @@ -789,9 +790,15 @@ void drbd_debugfs_device_add(struct drbd_device *device)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!slink_name)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto fail;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dentry = debugfs_create_symlink(minor_buf, drbd_debugfs_minors, slink_name);<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; device-&gt;debugfs_minor = dentry;<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; kfree(slink_name);<br>
&gt; -&nbsp;&nbsp;&nbsp;&nbsp; slink_name = NULL;<br>
&gt; +&nbsp;&nbsp;&nbsp; if (!IS_ERR(dentry)) {<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device-&gt;debugfs_minor = dentry;<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kfree(slink_name);<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; slink_name = NULL;<br>
&gt; +&nbsp;&nbsp;&nbsp; } else {<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kfree(slink_name);<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; slink_name = NULL;<br>
&gt; +&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goto fail;<br>
&gt; +&nbsp;&nbsp;&nbsp; }<br>
&gt; <br>
&gt;&nbsp; #define DCF(name)&nbsp;&nbsp;&nbsp; do {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dentry = debugfs_create_file(#name, 0440,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \<br>
&gt; --<br>
&gt; 2.40.0<br>
&gt; <br>
&gt; <br>
<br>
Hi, thanks for the patch.<br>
<br>
Please see this commit:<br>
<br>
commit d27e84a305980ac61df0a6841059d0eb09b8283d<br>
Author: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;<br>
Date:&nbsp;&nbsp; Tue Jun 18 17:45:49 2019 +0200<br>
<br>
&nbsp;&nbsp;&nbsp; block: drbd: no need to check return value of debugfs_create functions<br>
<br>
&nbsp;&nbsp;&nbsp; When calling debugfs functions, there is no need to ever check the<br>
&nbsp;&nbsp;&nbsp; return value.&nbsp; The function can work or not, but the code logic should<br>
&nbsp;&nbsp;&nbsp; never do something different based on this.<br>
<br>
Also, it still looks like that whitespace is garbled.<br>
<br>
NAK.<br>
<br>
-- <br>
Christoph Böhmwalder<br>
LINBIT | Keeping the Digital World Running<br>
DRBD HA —&nbsp; Disaster Recovery — Software defined Storage<br>
</div>
</span></font></div>
</body>
</html>