14f8ab
From d54f087a2484695ff7ac214d39f2750fddcef2d5 Mon Sep 17 00:00:00 2001
14f8ab
From: HuangShujun <549702281@qq.com>
14f8ab
Date: Thu, 5 Dec 2019 10:07:10 +0200
14f8ab
Subject: [PATCH 387/449] To fix readdir-ahead memory leak
14f8ab
14f8ab
Glusterfs client process has memory leak if create several files under
14f8ab
one folder, and delete the folder. According to statedump, the ref
14f8ab
counts of readdir-ahead is bigger than zero in the inode table.
14f8ab
14f8ab
Readdir-ahead get parent inode by inode_parent in rda_mark_inode_dirty
14f8ab
when each rda_writev_cbk,the inode ref count of parent folder will be
14f8ab
increased in inode_parent, but readdir-ahead do not unref it later.
14f8ab
14f8ab
The correction is unref the parent inode at the end of
14f8ab
rda_mark_inode_dirty.
14f8ab
14f8ab
Upstream patch:
14f8ab
> Upstream patch link: https://review.gluster.org/c/glusterfs/+/23815
14f8ab
> Fixes: bz#1779055
14f8ab
> Signed-off-by: HuangShujun <549702281@qq.com>
14f8ab
> Change-Id: Iee68ab1089cbc2fbc4185b93720fb1f66ee89524
14f8ab
14f8ab
BUG: 1781550
14f8ab
Change-Id: Iee68ab1089cbc2fbc4185b93720fb1f66ee89524
14f8ab
Signed-off-by: Xavi Hernandez <xhernandez@redhat.com>
14f8ab
Reviewed-on: https://code.engineering.redhat.com/gerrit/202312
14f8ab
Tested-by: RHGS Build Bot <nigelb@redhat.com>
14f8ab
Reviewed-by: Sunil Kumar Heggodu Gopala Acharya <sheggodu@redhat.com>
14f8ab
---
14f8ab
 xlators/performance/readdir-ahead/src/readdir-ahead.c | 1 +
14f8ab
 1 file changed, 1 insertion(+)
14f8ab
14f8ab
diff --git a/xlators/performance/readdir-ahead/src/readdir-ahead.c b/xlators/performance/readdir-ahead/src/readdir-ahead.c
14f8ab
index 7fd4f8d..933941d 100644
14f8ab
--- a/xlators/performance/readdir-ahead/src/readdir-ahead.c
14f8ab
+++ b/xlators/performance/readdir-ahead/src/readdir-ahead.c
14f8ab
@@ -254,6 +254,7 @@ rda_mark_inode_dirty(xlator_t *this, inode_t *inode)
14f8ab
             }
14f8ab
         }
14f8ab
         UNLOCK(&parent->lock);
14f8ab
+        inode_unref(parent);
14f8ab
     }
14f8ab
 
14f8ab
     return;
14f8ab
-- 
14f8ab
1.8.3.1
14f8ab