Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 19451
b: refs/heads/master
c: d739b42
h: refs/heads/master
i:
  19449: 0a99a69
  19447: 56f97bd
v: v3
  • Loading branch information
Pekka Enberg authored and Linus Torvalds committed Feb 1, 2006
1 parent ea6c97c commit 92d272e
Show file tree
Hide file tree
Showing 10 changed files with 50 additions and 155 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d19720a909b4443f78cbb03f4f090180e143ad9d
refs/heads/master: d739b42b82773206297db1fc0d96ef895a5d9688
16 changes: 5 additions & 11 deletions trunk/fs/reiserfs/dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,18 +150,15 @@ static int reiserfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
if (d_reclen <= 32) {
local_buf = small_buf;
} else {
local_buf =
reiserfs_kmalloc(d_reclen, GFP_NOFS,
inode->i_sb);
local_buf = kmalloc(d_reclen,
GFP_NOFS);
if (!local_buf) {
pathrelse(&path_to_entry);
ret = -ENOMEM;
goto out;
}
if (item_moved(&tmp_ih, &path_to_entry)) {
reiserfs_kfree(local_buf,
d_reclen,
inode->i_sb);
kfree(local_buf);
goto research;
}
}
Expand All @@ -174,15 +171,12 @@ static int reiserfs_readdir(struct file *filp, void *dirent, filldir_t filldir)
(dirent, local_buf, d_reclen, d_off, d_ino,
DT_UNKNOWN) < 0) {
if (local_buf != small_buf) {
reiserfs_kfree(local_buf,
d_reclen,
inode->i_sb);
kfree(local_buf);
}
goto end;
}
if (local_buf != small_buf) {
reiserfs_kfree(local_buf, d_reclen,
inode->i_sb);
kfree(local_buf);
}
// next entry should be looked for with such offset
next_pos = deh_offset(deh) + 1;
Expand Down
50 changes: 4 additions & 46 deletions trunk/fs/reiserfs/fix_node.c
Original file line number Diff line number Diff line change
Expand Up @@ -2021,38 +2021,6 @@ static int get_neighbors(struct tree_balance *p_s_tb, int n_h)
return CARRY_ON;
}

#ifdef CONFIG_REISERFS_CHECK
void *reiserfs_kmalloc(size_t size, gfp_t flags, struct super_block *s)
{
void *vp;
static size_t malloced;

vp = kmalloc(size, flags);
if (vp) {
REISERFS_SB(s)->s_kmallocs += size;
if (REISERFS_SB(s)->s_kmallocs > malloced + 200000) {
reiserfs_warning(s,
"vs-8301: reiserfs_kmalloc: allocated memory %d",
REISERFS_SB(s)->s_kmallocs);
malloced = REISERFS_SB(s)->s_kmallocs;
}
}
return vp;
}

void reiserfs_kfree(const void *vp, size_t size, struct super_block *s)
{
kfree(vp);

REISERFS_SB(s)->s_kmallocs -= size;
if (REISERFS_SB(s)->s_kmallocs < 0)
reiserfs_warning(s,
"vs-8302: reiserfs_kfree: allocated memory %d",
REISERFS_SB(s)->s_kmallocs);

}
#endif

static int get_virtual_node_size(struct super_block *sb, struct buffer_head *bh)
{
int max_num_of_items;
Expand Down Expand Up @@ -2086,7 +2054,7 @@ static int get_mem_for_virtual_node(struct tree_balance *tb)
/* we have to allocate more memory for virtual node */
if (tb->vn_buf) {
/* free memory allocated before */
reiserfs_kfree(tb->vn_buf, tb->vn_buf_size, tb->tb_sb);
kfree(tb->vn_buf);
/* this is not needed if kfree is atomic */
check_fs = 1;
}
Expand All @@ -2095,24 +2063,15 @@ static int get_mem_for_virtual_node(struct tree_balance *tb)
tb->vn_buf_size = size;

/* get memory for virtual item */
buf =
reiserfs_kmalloc(size, GFP_ATOMIC | __GFP_NOWARN,
tb->tb_sb);
buf = kmalloc(size, GFP_ATOMIC | __GFP_NOWARN);
if (!buf) {
/* getting memory with GFP_KERNEL priority may involve
balancing now (due to indirect_to_direct conversion on
dcache shrinking). So, release path and collected
resources here */
free_buffers_in_tb(tb);
buf = reiserfs_kmalloc(size, GFP_NOFS, tb->tb_sb);
buf = kmalloc(size, GFP_NOFS);
if (!buf) {
#ifdef CONFIG_REISERFS_CHECK
reiserfs_warning(tb->tb_sb,
"vs-8345: get_mem_for_virtual_node: "
"kmalloc failed. reiserfs kmalloced %d bytes",
REISERFS_SB(tb->tb_sb)->
s_kmallocs);
#endif
tb->vn_buf_size = 0;
}
tb->vn_buf = buf;
Expand Down Expand Up @@ -2619,7 +2578,6 @@ void unfix_nodes(struct tree_balance *tb)
}
}

if (tb->vn_buf)
reiserfs_kfree(tb->vn_buf, tb->vn_buf_size, tb->tb_sb);
kfree(tb->vn_buf);

}
84 changes: 27 additions & 57 deletions trunk/fs/reiserfs/journal.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,18 +152,16 @@ static struct reiserfs_bitmap_node *allocate_bitmap_node(struct super_block
struct reiserfs_bitmap_node *bn;
static int id;

bn = reiserfs_kmalloc(sizeof(struct reiserfs_bitmap_node), GFP_NOFS,
p_s_sb);
bn = kmalloc(sizeof(struct reiserfs_bitmap_node), GFP_NOFS);
if (!bn) {
return NULL;
}
bn->data = reiserfs_kmalloc(p_s_sb->s_blocksize, GFP_NOFS, p_s_sb);
bn->data = kzalloc(p_s_sb->s_blocksize, GFP_NOFS);
if (!bn->data) {
reiserfs_kfree(bn, sizeof(struct reiserfs_bitmap_node), p_s_sb);
kfree(bn);
return NULL;
}
bn->id = id++;
memset(bn->data, 0, p_s_sb->s_blocksize);
INIT_LIST_HEAD(&bn->list);
return bn;
}
Expand Down Expand Up @@ -197,8 +195,8 @@ static inline void free_bitmap_node(struct super_block *p_s_sb,
struct reiserfs_journal *journal = SB_JOURNAL(p_s_sb);
journal->j_used_bitmap_nodes--;
if (journal->j_free_bitmap_nodes > REISERFS_MAX_BITMAP_NODES) {
reiserfs_kfree(bn->data, p_s_sb->s_blocksize, p_s_sb);
reiserfs_kfree(bn, sizeof(struct reiserfs_bitmap_node), p_s_sb);
kfree(bn->data);
kfree(bn);
} else {
list_add(&bn->list, &journal->j_bitmap_nodes);
journal->j_free_bitmap_nodes++;
Expand Down Expand Up @@ -276,8 +274,8 @@ static int free_bitmap_nodes(struct super_block *p_s_sb)
while (next != &journal->j_bitmap_nodes) {
bn = list_entry(next, struct reiserfs_bitmap_node, list);
list_del(next);
reiserfs_kfree(bn->data, p_s_sb->s_blocksize, p_s_sb);
reiserfs_kfree(bn, sizeof(struct reiserfs_bitmap_node), p_s_sb);
kfree(bn->data);
kfree(bn);
next = journal->j_bitmap_nodes.next;
journal->j_free_bitmap_nodes--;
}
Expand Down Expand Up @@ -581,7 +579,7 @@ static inline void put_journal_list(struct super_block *s,
jl->j_trans_id, jl->j_refcount);
}
if (--jl->j_refcount == 0)
reiserfs_kfree(jl, sizeof(struct reiserfs_journal_list), s);
kfree(jl);
}

/*
Expand Down Expand Up @@ -1818,8 +1816,7 @@ void remove_journal_hash(struct super_block *sb,
static void free_journal_ram(struct super_block *p_s_sb)
{
struct reiserfs_journal *journal = SB_JOURNAL(p_s_sb);
reiserfs_kfree(journal->j_current_jl,
sizeof(struct reiserfs_journal_list), p_s_sb);
kfree(journal->j_current_jl);
journal->j_num_lists--;

vfree(journal->j_cnode_free_orig);
Expand Down Expand Up @@ -2093,21 +2090,15 @@ static int journal_read_transaction(struct super_block *p_s_sb,
}
trans_id = get_desc_trans_id(desc);
/* now we know we've got a good transaction, and it was inside the valid time ranges */
log_blocks =
reiserfs_kmalloc(get_desc_trans_len(desc) *
sizeof(struct buffer_head *), GFP_NOFS, p_s_sb);
real_blocks =
reiserfs_kmalloc(get_desc_trans_len(desc) *
sizeof(struct buffer_head *), GFP_NOFS, p_s_sb);
log_blocks = kmalloc(get_desc_trans_len(desc) *
sizeof(struct buffer_head *), GFP_NOFS);
real_blocks = kmalloc(get_desc_trans_len(desc) *
sizeof(struct buffer_head *), GFP_NOFS);
if (!log_blocks || !real_blocks) {
brelse(c_bh);
brelse(d_bh);
reiserfs_kfree(log_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
reiserfs_kfree(real_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
kfree(log_blocks);
kfree(real_blocks);
reiserfs_warning(p_s_sb,
"journal-1169: kmalloc failed, unable to mount FS");
return -1;
Expand Down Expand Up @@ -2145,12 +2136,8 @@ static int journal_read_transaction(struct super_block *p_s_sb,
brelse_array(real_blocks, i);
brelse(c_bh);
brelse(d_bh);
reiserfs_kfree(log_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
reiserfs_kfree(real_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
kfree(log_blocks);
kfree(real_blocks);
return -1;
}
}
Expand All @@ -2166,12 +2153,8 @@ static int journal_read_transaction(struct super_block *p_s_sb,
brelse_array(real_blocks, get_desc_trans_len(desc));
brelse(c_bh);
brelse(d_bh);
reiserfs_kfree(log_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
reiserfs_kfree(real_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
kfree(log_blocks);
kfree(real_blocks);
return -1;
}
memcpy(real_blocks[i]->b_data, log_blocks[i]->b_data,
Expand All @@ -2193,12 +2176,8 @@ static int journal_read_transaction(struct super_block *p_s_sb,
get_desc_trans_len(desc) - i);
brelse(c_bh);
brelse(d_bh);
reiserfs_kfree(log_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
reiserfs_kfree(real_blocks,
get_desc_trans_len(desc) *
sizeof(struct buffer_head *), p_s_sb);
kfree(log_blocks);
kfree(real_blocks);
return -1;
}
brelse(real_blocks[i]);
Expand All @@ -2217,12 +2196,8 @@ static int journal_read_transaction(struct super_block *p_s_sb,
journal->j_trans_id = trans_id + 1;
brelse(c_bh);
brelse(d_bh);
reiserfs_kfree(log_blocks,
le32_to_cpu(desc->j_len) * sizeof(struct buffer_head *),
p_s_sb);
reiserfs_kfree(real_blocks,
le32_to_cpu(desc->j_len) * sizeof(struct buffer_head *),
p_s_sb);
kfree(log_blocks);
kfree(real_blocks);
return 0;
}

Expand Down Expand Up @@ -2472,13 +2447,11 @@ static struct reiserfs_journal_list *alloc_journal_list(struct super_block *s)
{
struct reiserfs_journal_list *jl;
retry:
jl = reiserfs_kmalloc(sizeof(struct reiserfs_journal_list), GFP_NOFS,
s);
jl = kzalloc(sizeof(struct reiserfs_journal_list), GFP_NOFS);
if (!jl) {
yield();
goto retry;
}
memset(jl, 0, sizeof(*jl));
INIT_LIST_HEAD(&jl->j_list);
INIT_LIST_HEAD(&jl->j_working_list);
INIT_LIST_HEAD(&jl->j_tail_bh_list);
Expand Down Expand Up @@ -3042,14 +3015,12 @@ struct reiserfs_transaction_handle *reiserfs_persistent_transaction(struct
}
return th;
}
th = reiserfs_kmalloc(sizeof(struct reiserfs_transaction_handle),
GFP_NOFS, s);
th = kmalloc(sizeof(struct reiserfs_transaction_handle), GFP_NOFS);
if (!th)
return NULL;
ret = journal_begin(th, s, nblocks);
if (ret) {
reiserfs_kfree(th, sizeof(struct reiserfs_transaction_handle),
s);
kfree(th);
return NULL;
}

Expand All @@ -3067,8 +3038,7 @@ int reiserfs_end_persistent_transaction(struct reiserfs_transaction_handle *th)
ret = -EIO;
if (th->t_refcount == 0) {
SB_JOURNAL(s)->j_persistent_trans--;
reiserfs_kfree(th, sizeof(struct reiserfs_transaction_handle),
s);
kfree(th);
}
return ret;
}
Expand Down
16 changes: 8 additions & 8 deletions trunk/fs/reiserfs/namei.c
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
/* get memory for composing the entry */
buflen = DEH_SIZE + ROUND_UP(namelen);
if (buflen > sizeof(small_buf)) {
buffer = reiserfs_kmalloc(buflen, GFP_NOFS, dir->i_sb);
buffer = kmalloc(buflen, GFP_NOFS);
if (buffer == 0)
return -ENOMEM;
} else
Expand Down Expand Up @@ -490,7 +490,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
retval = reiserfs_find_entry(dir, name, namelen, &path, &de);
if (retval != NAME_NOT_FOUND) {
if (buffer != small_buf)
reiserfs_kfree(buffer, buflen, dir->i_sb);
kfree(buffer);
pathrelse(&path);

if (retval == IO_ERROR) {
Expand All @@ -515,7 +515,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
reiserfs_warning(dir->i_sb,
"reiserfs_add_entry: Congratulations! we have got hash function screwed up");
if (buffer != small_buf)
reiserfs_kfree(buffer, buflen, dir->i_sb);
kfree(buffer);
pathrelse(&path);
return -EBUSY;
}
Expand All @@ -535,7 +535,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
&entry_key);

if (buffer != small_buf)
reiserfs_kfree(buffer, buflen, dir->i_sb);
kfree(buffer);
pathrelse(&path);
return -EBUSY;
}
Expand All @@ -546,7 +546,7 @@ static int reiserfs_add_entry(struct reiserfs_transaction_handle *th,
reiserfs_paste_into_item(th, &path, &entry_key, dir, buffer,
paste_size);
if (buffer != small_buf)
reiserfs_kfree(buffer, buflen, dir->i_sb);
kfree(buffer);
if (retval) {
reiserfs_check_path(&path);
return retval;
Expand Down Expand Up @@ -1065,7 +1065,7 @@ static int reiserfs_symlink(struct inode *parent_dir,
goto out_failed;
}

name = reiserfs_kmalloc(item_len, GFP_NOFS, parent_dir->i_sb);
name = kmalloc(item_len, GFP_NOFS);
if (!name) {
drop_new_inode(inode);
retval = -ENOMEM;
Expand All @@ -1079,14 +1079,14 @@ static int reiserfs_symlink(struct inode *parent_dir,
retval = journal_begin(&th, parent_dir->i_sb, jbegin_count);
if (retval) {
drop_new_inode(inode);
reiserfs_kfree(name, item_len, parent_dir->i_sb);
kfree(name);
goto out_failed;
}

retval =
reiserfs_new_inode(&th, parent_dir, mode, name, strlen(symname),
dentry, inode);
reiserfs_kfree(name, item_len, parent_dir->i_sb);
kfree(name);
if (retval) { /* reiserfs_new_inode iputs for us */
goto out_failed;
}
Expand Down
Loading

0 comments on commit 92d272e

Please sign in to comment.