aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/hypfs/hypfs.h
diff options
context:
space:
mode:
authorHeiko Carstens <hca@linux.ibm.com>2023-07-04 15:47:13 +0200
committerHeiko Carstens <hca@linux.ibm.com>2023-07-24 12:12:22 +0200
commit3325b4d85799957aa53514e69bed5c9df7771caf (patch)
tree3c47e58f6881eccf4f7d5817b744b297302bfad8 /arch/s390/hypfs/hypfs.h
parents390/hypfs: remove open-coded PTR_ALIGN() (diff)
downloadlinux-3325b4d85799957aa53514e69bed5c9df7771caf.tar.gz
linux-3325b4d85799957aa53514e69bed5c9df7771caf.zip
s390/hypfs: factor out filesystem code
The s390_hypfs filesystem is deprecated and shouldn't be used due to its rather odd semantics. It creates a whole directory structure with static file contents so a user can read a consistent state while within that directory. Writing to its update attribute will remove and rebuild nearly the whole filesystem, so that again a user can read a consistent state, even if multiple files need to be read. Given that this wastes a lot of CPU cycles, and involves a lot of code, binary interfaces have been added quite a couple of years ago, which simply pass the binary data to user space, and let user space decode the data. This is the preferred and only way how the data should be retrieved. The assumption is that there are no users of the s390_hypfs filesystem. However instead of just removing the code, and having to revert in case there are actually users, factor the filesystem code out and make it only available via a new config option. This config option is supposed to be disabled. If it turns out there are no complaints the filesystem code can be removed probably in a couple of years. Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/hypfs/hypfs.h')
-rw-r--r--arch/s390/hypfs/hypfs.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/s390/hypfs/hypfs.h b/arch/s390/hypfs/hypfs.h
index 05f3f9aee5fc..65f4036fd541 100644
--- a/arch/s390/hypfs/hypfs.h
+++ b/arch/s390/hypfs/hypfs.h
@@ -46,6 +46,15 @@ void hypfs_diag0c_exit(void);
void hypfs_sprp_init(void);
void hypfs_sprp_exit(void);
+int __hypfs_fs_init(void);
+
+static inline int hypfs_fs_init(void)
+{
+ if (IS_ENABLED(CONFIG_S390_HYPFS_FS))
+ return __hypfs_fs_init();
+ return 0;
+}
+
/* debugfs interface */
struct hypfs_dbfs_file;
@@ -69,7 +78,6 @@ struct hypfs_dbfs_file {
struct dentry *dentry;
};
-extern void hypfs_dbfs_init(void);
extern void hypfs_dbfs_exit(void);
extern void hypfs_dbfs_create_file(struct hypfs_dbfs_file *df);
extern void hypfs_dbfs_remove_file(struct hypfs_dbfs_file *df);