[Devel] [PATCH RHEL7 COMMIT] fs/fuse: add conn_ctl to fuse_conn struct
Konstantin Khorenko
khorenko at virtuozzo.com
Tue May 21 18:47:40 MSK 2019
The commit is pushed to "branch-rh7-3.10.0-957.12.2.vz7.96.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-957.12.2.vz7.96.1
------>
commit 3464f8948505d165d699c1999627aa8535b4aae2
Author: Pavel Butsykin <pbutsykin at virtuozzo.com>
Date: Tue May 21 18:47:38 2019 +0300
fs/fuse: add conn_ctl to fuse_conn struct
This is preparation patch that places sysfs dentry pointer to fc that's
created for each mount point. This will be necessary for forwarding KIO
statistics through sysfs, that will also need to be done separately for each
mount point.
Signed-off-by: Pavel Butsykin <pbutsykin at virtuozzo.com>
=====================
Patchset description:
Statistics for vstorage kernel fast-path
Vstorage provides plenty of statistics information via 'vstorage -c cl mnt-top',
but when it comes kernel fast-path, it doesn't work. All because mnt-top
command collects information from .vstorage.info directory, where vstorage-mount
provides a lot of different statistical information in the form of files, but
it was not implemented for for fast-path.
This patch-set is aimed to implementation of the support of some statistics
inforamtion files from .vstorage.info:
cs_stats
fstat
fstat_lat
iostat
requests
Which will be located at "/sys/fs/fuse/connections/*mnt_id*/kio_stat/". This
will be enough to maintain vstorage mnt-top command for fast-path mount points.
https://pmc.acronis.com/browse/VSTOR-20979
Pavel Butsykin (15):
fs/fuse: add conn_ctl to fuse_conn struct
fs/fuse kio: create sysfs stat directory
fs/fuse kio: implement iostat
fs/fuse kio: make common interface pcs_kio_file_list() for listing kio files
fs/fuse kio: make common interface pcs_kio_req_list() for listing kio reqs
fs/fuse kio: add retry counter for kio requests
fs/fuse kio: implement pcs_strerror()
fs/fuse kio: implement requests statistics
fs/fuse kio: implement fstat statistics info
fs/fuse kio: implement fstat_lat statistics info
fs/fuse kio: remove useless pcs_cs initialization
fs/fuse kio: implement cs statistics accounting
fs/fuse kio: convert rpc state id to string
fs/fuse kio: implement cs_stats statistics info
fs/fuse kio: add locked cs_get_avg_in_flight()
---
fs/fuse/control.c | 2 ++
fs/fuse/fuse_i.h | 1 +
2 files changed, 3 insertions(+)
diff --git a/fs/fuse/control.c b/fs/fuse/control.c
index 254f048359a8..5ea8ab2165cf 100644
--- a/fs/fuse/control.c
+++ b/fs/fuse/control.c
@@ -570,6 +570,8 @@ int fuse_ctl_add_conn(struct fuse_conn *fc)
if (!parent)
goto err;
+ fc->conn_ctl = parent;
+
if (!fuse_ctl_add_dentry(parent, fc, "waiting", S_IFREG | 0400, 1,
NULL, &fuse_ctl_waiting_ops) ||
!fuse_ctl_add_dentry(parent, fc, "abort", S_IFREG | 0200, 1,
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
index f7415fdbe58e..0ea0340c6b70 100644
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -788,6 +788,7 @@ struct fuse_conn {
int ktrace_level;
struct fuse_ktrace * ktrace;
+ struct dentry *conn_ctl;
};
static inline struct fuse_conn *get_fuse_conn_super(struct super_block *sb)
More information about the Devel
mailing list