Skip to contentSkip to conversation

reiserfs kmalloc usage uniformness

PATCH New Oleg Drokin 1 participant 1 message Jan 9, 2002

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 reiserfs kmalloc usage uniformness

Hello!

This patch forces using of reiserfs_kmalloc in all places, where kmalloc is needed. Now reiserfs_kmalloc only have extra overhead if CONFIG_REISERFS_CHECK is set.

Please apply

Bye,
Oleg

fs/reiserfs/dir.c renamed from fs/reiserfs.old/dir.c +4 -4
diff -uNr linux/fs/reiserfs.old/dir.c linux/fs/reiserfs/dir.c
@@ -115,13 +115,13 @@
 		if (d_reclen <= 32) {
 		  local_buf = small_buf ;
 		} else {
-		    local_buf = kmalloc(d_reclen, GFP_NOFS) ;
+		    local_buf = reiserfs_kmalloc(d_reclen, GFP_NOFS, inode->i_sb) ;
 		    if (!local_buf) {
 			pathrelse (&path_to_entry);
 			return -ENOMEM ;
 		    }
 		    if (item_moved (&tmp_ih, &path_to_entry)) {
-			kfree(local_buf) ;
+			reiserfs_kfree(local_buf, d_reclen, inode->i_sb) ;
 			goto research;
 		    }
 		}
@@ -133,12 +133,12 @@
 		if (filldir (dirent, local_buf, d_reclen, d_off, d_ino, 
 		             DT_UNKNOWN) < 0) {
 		    if (local_buf != small_buf) {
-			kfree(local_buf) ;
+			reiserfs_kfree(local_buf, d_reclen, inode->i_sb) ;
 		    }
 		    goto end;
 		}
 		if (local_buf != small_buf) {
-		    kfree(local_buf) ;
+		    reiserfs_kfree(local_buf, d_reclen, inode->i_sb) ;
 		}
 
 		// next entry should be looked for with such offset
fs/reiserfs/fix_node.c renamed from fs/reiserfs.old/fix_node.c +2 -1
diff -uNr linux/fs/reiserfs.old/fix_node.c linux/fs/reiserfs/fix_node.c
@@ -1979,7 +1979,7 @@
     return CARRY_ON;
 }
 
-
+#ifdef CONFIG_REISERFS_CHECK
 void * reiserfs_kmalloc (size_t size, int flags, struct super_block * s)
 {
     void * vp;
@@ -2007,6 +2007,7 @@
 	reiserfs_warning ("vs-8302: reiserfs_kfree: allocated memory %d\n", s->u.reiserfs_sb.s_kmallocs);
 
 }
+#endif
 
 
 static int get_virtual_node_size (struct super_block * sb, struct buffer_head * bh)
fs/reiserfs/journal.c renamed from fs/reiserfs.old/journal.c +21 -21

109 lines not on this page · raw message

fs/reiserfs/namei.c renamed from fs/reiserfs.old/namei.c +2 -2
diff -uNr linux/fs/reiserfs.old/namei.c linux/fs/reiserfs/namei.c
@@ -880,7 +880,7 @@
 	return -ENAMETOOLONG;
     }
   
-    name = kmalloc (item_len, GFP_NOFS);
+    name = reiserfs_kmalloc (item_len, GFP_NOFS, dir->i_sb);
     if (!name) {
 	iput(inode) ;
 	return -ENOMEM;
@@ -893,7 +893,7 @@
 
     inode = reiserfs_new_inode (&th, dir, S_IFLNK | S_IRWXUGO, name, strlen (symname), dentry,
 				inode, &retval);
-    kfree (name);
+    reiserfs_kfree (name, item_len, dir->i_sb);
     if (inode == 0) { /* reiserfs_new_inode iputs for us */
 	pop_journal_writer(windex) ;
 	journal_end(&th, dir->i_sb, jbegin_count) ;
include/linux/reiserfs_fs.h renamed from include/linux/reiserfs_fs.h.orig +6 -0
@@ -1791,8 +1791,14 @@
 				     int n_size);
 
 /* fix_nodes.c */
+#ifdef CONFIG_REISERFS_CHECK
 void * reiserfs_kmalloc (size_t size, int flags, struct super_block * s);
 void reiserfs_kfree (const void * vp, size_t size, struct super_block * s);
+#else
+#define reiserfs_kmalloc(x, y, z) kmalloc(x, y)
+#define reiserfs_kfree(x, y, z) kfree(x)
+#endif
+
 int fix_nodes (int n_op_mode, struct tree_balance * p_s_tb, 
 	       struct item_head * p_s_ins_ih, const void *);
 void unfix_nodes (struct tree_balance *);