Kaynağa Gözat

[JFFS2] Fix potential memory leak of dead xattrs on unmount.

An xattr_datum which ends up orphaned should be freed by the GC 
thread. But if we umount before the GC thread is finished, or if we 
mount read-only and the GC thread never runs, they might never be 
freed. Clean them up during unmount, if there are any left.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
David Woodhouse 18 yıl önce
ebeveyn
işleme
2ad8ee7135
1 değiştirilmiş dosya ile 4 ekleme ve 0 silme
  1. 4 0
      fs/jffs2/xattr.c

+ 4 - 0
fs/jffs2/xattr.c

@@ -754,6 +754,10 @@ void jffs2_clear_xattr_subsystem(struct jffs2_sb_info *c)
 		list_del(&xd->xindex);
 		jffs2_free_xattr_datum(xd);
 	}
+	list_for_each_entry_safe(xd, _xd, &c->xattr_unchecked, xindex) {
+		list_del(&xd->xindex);
+		jffs2_free_xattr_datum(xd);
+	}
 }
 
 #define XREF_TMPHASH_SIZE	(128)