nfsd: use DEFINE_SHOW_ATTRIBUTE to define export_features_fops and supported_enctypes...
authorChenXiaoSong <chenxiaosong2@huawei.com>
Thu, 22 Sep 2022 16:31:53 +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.

Signed-off-by: ChenXiaoSong <chenxiaosong2@huawei.com>
[ cel: reduce line length ]
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfsctl.c

index 597a26a..3ed0cfd 100644 (file)
@@ -185,17 +185,7 @@ static int export_features_show(struct seq_file *m, void *v)
        return 0;
 }
 
-static int export_features_open(struct inode *inode, struct file *file)
-{
-       return single_open(file, export_features_show, NULL);
-}
-
-static const struct file_operations export_features_operations = {
-       .open           = export_features_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(export_features);
 
 #if defined(CONFIG_SUNRPC_GSS) || defined(CONFIG_SUNRPC_GSS_MODULE)
 static int supported_enctypes_show(struct seq_file *m, void *v)
@@ -204,17 +194,7 @@ static int supported_enctypes_show(struct seq_file *m, void *v)
        return 0;
 }
 
-static int supported_enctypes_open(struct inode *inode, struct file *file)
-{
-       return single_open(file, supported_enctypes_show, NULL);
-}
-
-static const struct file_operations supported_enctypes_ops = {
-       .open           = supported_enctypes_open,
-       .read           = seq_read,
-       .llseek         = seq_lseek,
-       .release        = single_release,
-};
+DEFINE_SHOW_ATTRIBUTE(supported_enctypes);
 #endif /* CONFIG_SUNRPC_GSS or CONFIG_SUNRPC_GSS_MODULE */
 
 static const struct file_operations pool_stats_operations = {
@@ -1365,7 +1345,7 @@ static int nfsd_fill_super(struct super_block *sb, struct fs_context *fc)
                /* Per-export io stats use same ops as exports file */
                [NFSD_Export_Stats] = {"export_stats", &exports_nfsd_operations, S_IRUGO},
                [NFSD_Export_features] = {"export_features",
-                                       &export_features_operations, S_IRUGO},
+                                       &export_features_fops, S_IRUGO},
                [NFSD_FO_UnlockIP] = {"unlock_ip",
                                        &transaction_ops, S_IWUSR|S_IRUSR},
                [NFSD_FO_UnlockFS] = {"unlock_filesystem",
@@ -1381,7 +1361,8 @@ static int nfsd_fill_super(struct super_block *sb, struct fs_context *fc)
                [NFSD_MaxConnections] = {"max_connections", &transaction_ops, S_IWUSR|S_IRUGO},
                [NFSD_Filecache] = {"filecache", &filecache_ops, S_IRUGO},
 #if defined(CONFIG_SUNRPC_GSS) || defined(CONFIG_SUNRPC_GSS_MODULE)
-               [NFSD_SupportedEnctypes] = {"supported_krb5_enctypes", &supported_enctypes_ops, S_IRUGO},
+               [NFSD_SupportedEnctypes] = {"supported_krb5_enctypes",
+                                       &supported_enctypes_fops, S_IRUGO},
 #endif /* CONFIG_SUNRPC_GSS or CONFIG_SUNRPC_GSS_MODULE */
 #ifdef CONFIG_NFSD_V4
                [NFSD_Leasetime] = {"nfsv4leasetime", &transaction_ops, S_IWUSR|S_IRUSR},