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

From: Coly Li
Date: Thu Jul 16 2020 - 05:54:27 EST


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.


> -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,

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.

Thanks.

Coly Li