nfsd: use DEFINE_SHOW_ATTRIBUTE to define client_info_fops
authorChenXiaoSong <chenxiaosong2@huawei.com>
Thu, 22 Sep 2022 16:31:54 +0000 (00:31 +0800)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Sep 2022 18:02:49 +0000 (14:02 -0400)
Use DEFINE_SHOW_ATTRIBUTE helper macro to simplify the code.

inode is converted from seq_file->file instead of seq_file->private in
client_info_show().

Signed-off-by: ChenXiaoSong <chenxiaosong2@huawei.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4state.c

index 56b50210da38bb6ace471437e522c1e7cbf42759..3d5eb00501a1bf942080309574859287174ab081 100644 (file)
@@ -2490,7 +2490,7 @@ static const char *cb_state2str(int state)
 
 static int client_info_show(struct seq_file *m, void *v)
 {
-       struct inode *inode = m->private;
+       struct inode *inode = file_inode(m->file);
        struct nfs4_client *clp;
        u64 clid;
 
@@ -2530,17 +2530,7 @@ static int client_info_show(struct seq_file *m, void *v)
        return 0;
 }
 
-static int client_info_open(struct inode *inode, struct file *file)
-{
-       return single_open(file, client_info_show, inode);
-}
-
-static const struct file_operations client_info_fops = {
-       .open           = client_info_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(client_info);
 
 static void *states_start(struct seq_file *s, loff_t *pos)
        __acquires(&clp->cl_lock)