Re: [PATCH -next] bcache: Convert to DEFINE_SHOW_ATTRIBUTE

From: miaoqinglang
Date: Thu Sep 17 2020 - 08:23:59 EST




在 2020/7/17 10:22, Coly Li 写道:
On 2020/7/16 17:54, Coly Li wrote:
On 2020/7/16 17:03, Qinglang Miao wrote:
From: Yongqiang Liu <liuyongqiang13@xxxxxxxxxx>


Hi Qianlang and Yongqiang,

Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code.

Signed-off-by: Yongqiang Liu <liuyongqiang13@xxxxxxxxxx>
---
drivers/md/bcache/closure.c | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)

diff --git a/drivers/md/bcache/closure.c b/drivers/md/bcache/closure.c
index 99222aa5d..37b9c5d49 100644
--- a/drivers/md/bcache/closure.c
+++ b/drivers/md/bcache/closure.c
@@ -159,7 +159,7 @@ void closure_debug_destroy(struct closure *cl)
static struct dentry *closure_debug;
-static int debug_seq_show(struct seq_file *f, void *data)
+static int debug_show(struct seq_file *f, void *data)
{
struct closure *cl;
@@ -188,17 +188,7 @@ static int debug_seq_show(struct seq_file *f, void *data)
return 0;
}
-static int debug_seq_open(struct inode *inode, struct file *file)
-{
- return single_open(file, debug_seq_show, NULL);
-}
-

Here NULL is sent to single_open(), in DEFINE_SHOW_ATTRIBUTE()
inode->i_private is sent into single_open(). I don't see the commit log
mentions or estimates such change.


Still this change modifies original code logic, I need to know the exact
effect before taking this patch.
>
It's equivalent to original code logic, because inode->iprivate equals to third parameter of debugfs_create_file() which is NULL.


-static const struct file_operations debug_ops = {
- .owner = THIS_MODULE,
- .open = debug_seq_open,
- .read_iter = seq_read_iter,

I doubt this patch applies to Linux v5.8-rc, this is how debug_ops is
defined in Linux v5.8-rc5,


I realize your patch is against linux-next, which is ahead of both
linux-block and mainline tree. So this patch does not apply to
linux-block tree, which is my upstream for bcache going to upstream.

I suggest to generate the patch against latest mainline kernel, or
linux-block branch for next merge window (for 5.9 it is branch
remotes/origin/for-5.9/drivers).

I've sent a new patch against latest mainline kernel. Thanks.

196 static const struct file_operations debug_ops = {
197 .owner = THIS_MODULE,
198 .open = debug_seq_open,
199 .read = seq_read,
200 .release = single_release
201 };

- .release = single_release
-};
+DEFINE_SHOW_ATTRIBUTE(debug);
void __init closure_debug_init(void)
{
@@ -209,7 +199,7 @@ void __init closure_debug_init(void)
* about this.
*/
closure_debug = debugfs_create_file(
- "closures", 0400, bcache_debug, NULL, &debug_ops);
+ "closures", 0400, bcache_debug, NULL, &debug_fops);
}
#endif

Do you test your change with upstream kernel ? Or at least you should
try to apply and compile the patch with latest upstream kernel.

I withdraw the above wrong word, the -next tag in patch subject was
overlooked by me. Next time I will try to avoid such mistake.

Coly Li


.