瀏覽代碼

UBIFS: Add an assertion for clean_zn_cnt

This patch adds a new ubifs_assert() in ubifs_tnc_close() to check
if there are any leaks of per-filesystem @clean_zn_cnt. This new
assert inspects whether the return value of ubifs_destroy_tnc_subtree()
is equal to @clean_zn_cnt or not while umount.

Artem: a minor amendment

Signed-off-by: hujianyang <hujianyang@huawei.com>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
hujianyang 11 年之前
父節點
當前提交
380347e9ca
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      fs/ubifs/tnc.c

+ 3 - 2
fs/ubifs/tnc.c

@@ -2859,10 +2859,11 @@ void ubifs_tnc_close(struct ubifs_info *c)
 {
 {
 	tnc_destroy_cnext(c);
 	tnc_destroy_cnext(c);
 	if (c->zroot.znode) {
 	if (c->zroot.znode) {
-		long n;
+		long n, freed;
 
 
-		ubifs_destroy_tnc_subtree(c->zroot.znode);
 		n = atomic_long_read(&c->clean_zn_cnt);
 		n = atomic_long_read(&c->clean_zn_cnt);
+		freed = ubifs_destroy_tnc_subtree(c->zroot.znode);
+		ubifs_assert(freed == n);
 		atomic_long_sub(n, &ubifs_clean_zn_cnt);
 		atomic_long_sub(n, &ubifs_clean_zn_cnt);
 	}
 	}
 	kfree(c->gap_lebs);
 	kfree(c->gap_lebs);