Skip to contentSkip to conversation

memory leak in ext3+htree

PATCH New Alex Tomas 1 participant 1 message Feb 24, 2003

lore
Share & tools
lore

Alex Tomas

author
#0 lore raw

PATCH 1/1 memory leak in ext3+htree

Hello!

here is very simple fix against memory leak in ext3's readdir().

fs/ext3/dir.c +14 -0
diff -uNr linux/fs/ext3/dir.c edited/fs/ext3/dir.c
@@ -33,12 +33,17 @@
 static int ext3_readdir(struct file *, void *, filldir_t);
 static int ext3_dx_readdir(struct file * filp,
 			   void * dirent, filldir_t filldir);
+static int ext3_release_dir (struct inode * inode,
+				struct file * filp);
 
 struct file_operations ext3_dir_operations = {
 	.read		= generic_read_dir,
 	.readdir	= ext3_readdir,		/* we take BKL. needed?*/
 	.ioctl		= ext3_ioctl,		/* BKL held */
 	.fsync		= ext3_sync_file,		/* BKL held */
+#ifdef CONFIG_EXT3_INDEX
+	.release	= ext3_release_dir,
+#endif
 };
 
 
@@ -481,4 +491,13 @@
 	UPDATE_ATIME(inode);
 	return 0;
 }
+
+static int ext3_release_dir (struct inode * inode, struct file * filp)
+{
+       if (is_dx(inode) && filp->private_data)
+		ext3_htree_free_dir_info(filp->private_data);
+
+	return 0;
+}
+
 #endif