On 2020/9/17 20:23, Qinglang Miao wrote: > Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code. > > As inode->iprivate equals to third parameter of > debugfs_create_file() which is NULL. So it's equivalent > to original code logic. > > Signed-off-by: Qinglang Miao <miaoqinglang@xxxxxxxxxx> > --- > v2: based on linux-next(20200917), and can be applied to > mainline cleanly now. Added into my test queue. Thanks. Coly Li > > 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 0164a1fe9..d8d9394a6 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); > -} > - > -static const struct file_operations debug_ops = { > - .owner = THIS_MODULE, > - .open = debug_seq_open, > - .read = seq_read, > - .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 > >