[Devel] [PATCH RHEL7 COMMIT] nfs: skip bdi_unregister() if inodes are leaked.
Evgenii Shatokhin
eshatokhin at virtuozzo.com
Sun Sep 29 13:51:31 MSK 2019
On 06.08.2019 12:35, Konstantin Khorenko wrote:
> The commit is pushed to "branch-rh7-3.10.0-957.21.3.vz7.106.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
> after rh7-3.10.0-957.21.3.vz7.106.7
> ------>
> commit 160e886e8adc095ac9f01420f66962732ee9683d
> Author: Andrey Ryabinin <aryabinin at virtuozzo.com>
> Date: Tue Aug 6 12:35:45 2019 +0300
>
> nfs: skip bdi_unregister() if inodes are leaked.
>
> https://jira.sw.ru/browse/PSBM-95177
> Signed-off-by: Andrey Ryabinin <aryabinin at virtuozzo.com>
> ---
> fs/nfs/super.c | 3 +++
> fs/super.c | 3 ++-
> 2 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/fs/nfs/super.c b/fs/nfs/super.c
> index 64b52b7188c9..f9c0a02c25af 100644
> --- a/fs/nfs/super.c
> +++ b/fs/nfs/super.c
> @@ -2711,6 +2711,9 @@ void nfs_put_super(struct super_block *s)
> {
> struct nfs_server *server = NFS_SB(s);
>
> + if (!list_empty(&s->s_inodes))
> + pr_err("nfs_put_super: busy inodes skip bdi_unregister\n");
> +
> bdi_unregister(&server->backing_dev_info);
> }
Looks like bdi_unregister() will still be called even if the list
s->s_inodes is not empty. Shouldn't it be like this:
+ if (!list_empty(&s->s_inodes)) {
+ pr_err("nfs_put_super: busy inodes skip bdi_unregister\n");
+ return;
+ }
+
bdi_unregister(&server->backing_dev_info);
?
> EXPORT_SYMBOL_GPL(nfs_put_super);
> diff --git a/fs/super.c b/fs/super.c
> index f131d14587ca..e5551b8462a8 100644
> --- a/fs/super.c
> +++ b/fs/super.c
> @@ -1046,7 +1046,8 @@ void kill_anon_super(struct super_block *sb)
> {
> dev_t dev = sb->s_dev;
> generic_shutdown_super(sb);
> - free_anon_bdev(dev);
> + if (!list_empty(&sb->s_inodes))
> + free_anon_bdev(dev);
> }
>
> EXPORT_SYMBOL(kill_anon_super);
>
> _______________________________________________
> Devel mailing list
> Devel at openvz.org
> https://lists.openvz.org/mailman/listinfo/devel
> .
>
More information about the Devel
mailing list