Commit 4cf5f7ad authored by Jeff Mahoney's avatar Jeff Mahoney Committed by Jan Kara

reiserfs: cleanup, rename key and item accessors to more friendly names

This patch does a quick search and replace:
B_N_PITEM_HEAD() -> item_head()
B_N_PDELIM_KEY() -> internal_key()
B_N_PKEY() -> leaf_key()
B_N_PITEM() -> item_body()

And the item_head version:
B_I_PITEM() -> ih_item_body()
I_ENTRY_COUNT() -> ih_entry_count()

And the treepath variants:
get_ih() -> tp_item_head()
PATH_PITEM_HEAD() -> tp_item_head()
get_item() -> tp_item_body()

... which makes the code much easier on the eyes.

I've also removed a few unused macros.

Checkpatch will complain about the 80 character limit for do_balan.c.
I've addressed that in a later patchset to split up balance_leaf().
Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
Signed-off-by: default avatarJan Kara <jack@suse.cz>
parent 797d9016
...@@ -819,9 +819,9 @@ static int get_left_neighbor(reiserfs_blocknr_hint_t * hint) ...@@ -819,9 +819,9 @@ static int get_left_neighbor(reiserfs_blocknr_hint_t * hint)
path = hint->path; path = hint->path;
bh = get_last_bh(path); bh = get_last_bh(path);
RFALSE(!bh, "green-4002: Illegal path specified to get_left_neighbor"); RFALSE(!bh, "green-4002: Illegal path specified to get_left_neighbor");
ih = get_ih(path); ih = tp_item_head(path);
pos_in_item = path->pos_in_item; pos_in_item = path->pos_in_item;
item = get_item(path); item = tp_item_body(path);
hint->search_start = bh->b_blocknr; hint->search_start = bh->b_blocknr;
......
...@@ -110,17 +110,17 @@ int reiserfs_readdir_inode(struct inode *inode, struct dir_context *ctx) ...@@ -110,17 +110,17 @@ int reiserfs_readdir_inode(struct inode *inode, struct dir_context *ctx)
item_num, B_NR_ITEMS(bh)); item_num, B_NR_ITEMS(bh));
/* and entry must be not more than number of entries in the item */ /* and entry must be not more than number of entries in the item */
RFALSE(I_ENTRY_COUNT(ih) < entry_num, RFALSE(ih_entry_count(ih) < entry_num,
"vs-9010: entry number is too big %d (%d)", "vs-9010: entry number is too big %d (%d)",
entry_num, I_ENTRY_COUNT(ih)); entry_num, ih_entry_count(ih));
if (search_res == POSITION_FOUND if (search_res == POSITION_FOUND
|| entry_num < I_ENTRY_COUNT(ih)) { || entry_num < ih_entry_count(ih)) {
/* go through all entries in the directory item beginning from the entry, that has been found */ /* go through all entries in the directory item beginning from the entry, that has been found */
struct reiserfs_de_head *deh = struct reiserfs_de_head *deh =
B_I_DEH(bh, ih) + entry_num; B_I_DEH(bh, ih) + entry_num;
for (; entry_num < I_ENTRY_COUNT(ih); for (; entry_num < ih_entry_count(ih);
entry_num++, deh++) { entry_num++, deh++) {
int d_reclen; int d_reclen;
char *d_name; char *d_name;
......
This diff is collapsed.
...@@ -105,7 +105,7 @@ static void create_virtual_node(struct tree_balance *tb, int h) ...@@ -105,7 +105,7 @@ static void create_virtual_node(struct tree_balance *tb, int h)
vn->vn_free_ptr += vn->vn_nr_item * sizeof(struct virtual_item); vn->vn_free_ptr += vn->vn_nr_item * sizeof(struct virtual_item);
/* first item in the node */ /* first item in the node */
ih = B_N_PITEM_HEAD(Sh, 0); ih = item_head(Sh, 0);
/* define the mergeability for 0-th item (if it is not being deleted) */ /* define the mergeability for 0-th item (if it is not being deleted) */
if (op_is_left_mergeable(&(ih->ih_key), Sh->b_size) if (op_is_left_mergeable(&(ih->ih_key), Sh->b_size)
...@@ -128,7 +128,7 @@ static void create_virtual_node(struct tree_balance *tb, int h) ...@@ -128,7 +128,7 @@ static void create_virtual_node(struct tree_balance *tb, int h)
vi->vi_item_len += ih_item_len(ih + j) + IH_SIZE; vi->vi_item_len += ih_item_len(ih + j) + IH_SIZE;
vi->vi_ih = ih + j; vi->vi_ih = ih + j;
vi->vi_item = B_I_PITEM(Sh, ih + j); vi->vi_item = ih_item_body(Sh, ih + j);
vi->vi_uarea = vn->vn_free_ptr; vi->vi_uarea = vn->vn_free_ptr;
// FIXME: there is no check, that item operation did not // FIXME: there is no check, that item operation did not
...@@ -168,7 +168,7 @@ static void create_virtual_node(struct tree_balance *tb, int h) ...@@ -168,7 +168,7 @@ static void create_virtual_node(struct tree_balance *tb, int h)
if (tb->CFR[0]) { if (tb->CFR[0]) {
struct reiserfs_key *key; struct reiserfs_key *key;
key = B_N_PDELIM_KEY(tb->CFR[0], tb->rkey[0]); key = internal_key(tb->CFR[0], tb->rkey[0]);
if (op_is_left_mergeable(key, Sh->b_size) if (op_is_left_mergeable(key, Sh->b_size)
&& (vn->vn_mode != M_DELETE && (vn->vn_mode != M_DELETE
|| vn->vn_affected_item_num != B_NR_ITEMS(Sh) - 1)) || vn->vn_affected_item_num != B_NR_ITEMS(Sh) - 1))
...@@ -182,8 +182,8 @@ static void create_virtual_node(struct tree_balance *tb, int h) ...@@ -182,8 +182,8 @@ static void create_virtual_node(struct tree_balance *tb, int h)
/* we delete last item and it could be merged with right neighbor's first item */ /* we delete last item and it could be merged with right neighbor's first item */
if (! if (!
(B_NR_ITEMS(Sh) == 1 (B_NR_ITEMS(Sh) == 1
&& is_direntry_le_ih(B_N_PITEM_HEAD(Sh, 0)) && is_direntry_le_ih(item_head(Sh, 0))
&& I_ENTRY_COUNT(B_N_PITEM_HEAD(Sh, 0)) == 1)) { && ih_entry_count(item_head(Sh, 0)) == 1)) {
/* node contains more than 1 item, or item is not directory item, or this item contains more than 1 entry */ /* node contains more than 1 item, or item is not directory item, or this item contains more than 1 entry */
print_block(Sh, 0, -1, -1); print_block(Sh, 0, -1, -1);
reiserfs_panic(tb->tb_sb, "vs-8045", reiserfs_panic(tb->tb_sb, "vs-8045",
...@@ -675,10 +675,10 @@ static int are_leaves_removable(struct tree_balance *tb, int lfree, int rfree) ...@@ -675,10 +675,10 @@ static int are_leaves_removable(struct tree_balance *tb, int lfree, int rfree)
"vs-8125: item number must be 1: it is %d", "vs-8125: item number must be 1: it is %d",
B_NR_ITEMS(S0)); B_NR_ITEMS(S0));
ih = B_N_PITEM_HEAD(S0, 0); ih = item_head(S0, 0);
if (tb->CFR[0] if (tb->CFR[0]
&& !comp_short_le_keys(&(ih->ih_key), && !comp_short_le_keys(&(ih->ih_key),
B_N_PDELIM_KEY(tb->CFR[0], internal_key(tb->CFR[0],
tb->rkey[0]))) tb->rkey[0])))
if (is_direntry_le_ih(ih)) { if (is_direntry_le_ih(ih)) {
/* Directory must be in correct state here: that is /* Directory must be in correct state here: that is
...@@ -1036,7 +1036,7 @@ static int get_far_parent(struct tree_balance *tb, ...@@ -1036,7 +1036,7 @@ static int get_far_parent(struct tree_balance *tb,
/* Form key to get parent of the left/right neighbor. */ /* Form key to get parent of the left/right neighbor. */
le_key2cpu_key(&s_lr_father_key, le_key2cpu_key(&s_lr_father_key,
B_N_PDELIM_KEY(*pcom_father, internal_key(*pcom_father,
(c_lr_par == (c_lr_par ==
LEFT_PARENTS) ? (tb->lkey[h - 1] = LEFT_PARENTS) ? (tb->lkey[h - 1] =
position - position -
...@@ -1175,9 +1175,9 @@ static inline int can_node_be_removed(int mode, int lfree, int sfree, int rfree, ...@@ -1175,9 +1175,9 @@ static inline int can_node_be_removed(int mode, int lfree, int sfree, int rfree,
struct item_head *ih; struct item_head *ih;
struct reiserfs_key *r_key = NULL; struct reiserfs_key *r_key = NULL;
ih = B_N_PITEM_HEAD(Sh, 0); ih = item_head(Sh, 0);
if (tb->CFR[h]) if (tb->CFR[h])
r_key = B_N_PDELIM_KEY(tb->CFR[h], tb->rkey[h]); r_key = internal_key(tb->CFR[h], tb->rkey[h]);
if (lfree + rfree + sfree < MAX_CHILD_SIZE(Sh) + levbytes if (lfree + rfree + sfree < MAX_CHILD_SIZE(Sh) + levbytes
/* shifting may merge items which might save space */ /* shifting may merge items which might save space */
......
...@@ -153,7 +153,7 @@ static void internal_insert_childs(struct buffer_info *cur_bi, ...@@ -153,7 +153,7 @@ static void internal_insert_childs(struct buffer_info *cur_bi,
memcpy(dc, new_dc, DC_SIZE * count); memcpy(dc, new_dc, DC_SIZE * count);
/* prepare space for count items */ /* prepare space for count items */
ih = B_N_PDELIM_KEY(cur, ((to == -1) ? 0 : to)); ih = internal_key(cur, ((to == -1) ? 0 : to));
memmove(ih + count, ih, memmove(ih + count, ih,
(nr - to) * KEY_SIZE + (nr + 1 + count) * DC_SIZE); (nr - to) * KEY_SIZE + (nr + 1 + count) * DC_SIZE);
...@@ -233,7 +233,7 @@ static void internal_delete_pointers_items(struct buffer_info *cur_bi, ...@@ -233,7 +233,7 @@ static void internal_delete_pointers_items(struct buffer_info *cur_bi,
dc = B_N_CHILD(cur, first_p); dc = B_N_CHILD(cur, first_p);
memmove(dc, dc + del_num, (nr + 1 - first_p - del_num) * DC_SIZE); memmove(dc, dc + del_num, (nr + 1 - first_p - del_num) * DC_SIZE);
key = B_N_PDELIM_KEY(cur, first_i); key = internal_key(cur, first_i);
memmove(key, key + del_num, memmove(key, key + del_num,
(nr - first_i - del_num) * KEY_SIZE + (nr + 1 - (nr - first_i - del_num) * KEY_SIZE + (nr + 1 -
del_num) * DC_SIZE); del_num) * DC_SIZE);
...@@ -330,13 +330,13 @@ static void internal_copy_pointers_items(struct buffer_info *dest_bi, ...@@ -330,13 +330,13 @@ static void internal_copy_pointers_items(struct buffer_info *dest_bi,
memcpy(dc, B_N_CHILD(src, src_order), DC_SIZE * cpy_num); memcpy(dc, B_N_CHILD(src, src_order), DC_SIZE * cpy_num);
/* prepare space for cpy_num - 1 item headers */ /* prepare space for cpy_num - 1 item headers */
key = B_N_PDELIM_KEY(dest, dest_order); key = internal_key(dest, dest_order);
memmove(key + cpy_num - 1, key, memmove(key + cpy_num - 1, key,
KEY_SIZE * (nr_dest - dest_order) + DC_SIZE * (nr_dest + KEY_SIZE * (nr_dest - dest_order) + DC_SIZE * (nr_dest +
cpy_num)); cpy_num));
/* insert headers */ /* insert headers */
memcpy(key, B_N_PDELIM_KEY(src, src_order), KEY_SIZE * (cpy_num - 1)); memcpy(key, internal_key(src, src_order), KEY_SIZE * (cpy_num - 1));
/* sizes, item number */ /* sizes, item number */
set_blkh_nr_item(blkh, blkh_nr_item(blkh) + (cpy_num - 1)); set_blkh_nr_item(blkh, blkh_nr_item(blkh) + (cpy_num - 1));
...@@ -429,12 +429,12 @@ static void internal_insert_key(struct buffer_info *dest_bi, int dest_position_b ...@@ -429,12 +429,12 @@ static void internal_insert_key(struct buffer_info *dest_bi, int dest_position_b
nr = blkh_nr_item(blkh); nr = blkh_nr_item(blkh);
/* prepare space for inserting key */ /* prepare space for inserting key */
key = B_N_PDELIM_KEY(dest, dest_position_before); key = internal_key(dest, dest_position_before);
memmove(key + 1, key, memmove(key + 1, key,
(nr - dest_position_before) * KEY_SIZE + (nr + 1) * DC_SIZE); (nr - dest_position_before) * KEY_SIZE + (nr + 1) * DC_SIZE);
/* insert key */ /* insert key */
memcpy(key, B_N_PDELIM_KEY(src, src_position), KEY_SIZE); memcpy(key, internal_key(src, src_position), KEY_SIZE);
/* Change dirt, free space, item number fields. */ /* Change dirt, free space, item number fields. */
...@@ -717,7 +717,7 @@ static void replace_lkey(struct tree_balance *tb, int h, struct item_head *key) ...@@ -717,7 +717,7 @@ static void replace_lkey(struct tree_balance *tb, int h, struct item_head *key)
if (B_NR_ITEMS(PATH_H_PBUFFER(tb->tb_path, h)) == 0) if (B_NR_ITEMS(PATH_H_PBUFFER(tb->tb_path, h)) == 0)
return; return;
memcpy(B_N_PDELIM_KEY(tb->CFL[h], tb->lkey[h]), key, KEY_SIZE); memcpy(internal_key(tb->CFL[h], tb->lkey[h]), key, KEY_SIZE);
do_balance_mark_internal_dirty(tb, tb->CFL[h], 0); do_balance_mark_internal_dirty(tb, tb->CFL[h], 0);
} }
...@@ -732,7 +732,7 @@ static void replace_rkey(struct tree_balance *tb, int h, struct item_head *key) ...@@ -732,7 +732,7 @@ static void replace_rkey(struct tree_balance *tb, int h, struct item_head *key)
"R[h] can not be empty if it exists (item number=%d)", "R[h] can not be empty if it exists (item number=%d)",
B_NR_ITEMS(tb->R[h])); B_NR_ITEMS(tb->R[h]));
memcpy(B_N_PDELIM_KEY(tb->CFR[h], tb->rkey[h]), key, KEY_SIZE); memcpy(internal_key(tb->CFR[h], tb->rkey[h]), key, KEY_SIZE);
do_balance_mark_internal_dirty(tb, tb->CFR[h], 0); do_balance_mark_internal_dirty(tb, tb->CFR[h], 0);
} }
...@@ -997,7 +997,7 @@ int balance_internal(struct tree_balance *tb, /* tree_balance structure ...@@ -997,7 +997,7 @@ int balance_internal(struct tree_balance *tb, /* tree_balance structure
/* new items don't fall into S_new */ /* new items don't fall into S_new */
/* store the delimiting key for the next level */ /* store the delimiting key for the next level */
/* new_insert_key = (n - snum)'th key in S[h] */ /* new_insert_key = (n - snum)'th key in S[h] */
memcpy(&new_insert_key, B_N_PDELIM_KEY(tbSh, n - snum), memcpy(&new_insert_key, internal_key(tbSh, n - snum),
KEY_SIZE); KEY_SIZE);
/* last parameter is del_par */ /* last parameter is del_par */
internal_move_pointers_items(&dest_bi, &src_bi, internal_move_pointers_items(&dest_bi, &src_bi,
...@@ -1008,7 +1008,7 @@ int balance_internal(struct tree_balance *tb, /* tree_balance structure ...@@ -1008,7 +1008,7 @@ int balance_internal(struct tree_balance *tb, /* tree_balance structure
/* store the delimiting key for the next level */ /* store the delimiting key for the next level */
/* new_insert_key = (n + insert_item - snum)'th key in S[h] */ /* new_insert_key = (n + insert_item - snum)'th key in S[h] */
memcpy(&new_insert_key, memcpy(&new_insert_key,
B_N_PDELIM_KEY(tbSh, n + insert_num - snum), internal_key(tbSh, n + insert_num - snum),
KEY_SIZE); KEY_SIZE);
/* last parameter is del_par */ /* last parameter is del_par */
internal_move_pointers_items(&dest_bi, &src_bi, internal_move_pointers_items(&dest_bi, &src_bi,
......
...@@ -295,9 +295,9 @@ static int _get_block_create_0(struct inode *inode, sector_t block, ...@@ -295,9 +295,9 @@ static int _get_block_create_0(struct inode *inode, sector_t block,
} }
// //
bh = get_last_bh(&path); bh = get_last_bh(&path);
ih = get_ih(&path); ih = tp_item_head(&path);
if (is_indirect_le_ih(ih)) { if (is_indirect_le_ih(ih)) {
__le32 *ind_item = (__le32 *) B_I_PITEM(bh, ih); __le32 *ind_item = (__le32 *) ih_item_body(bh, ih);
/* FIXME: here we could cache indirect item or part of it in /* FIXME: here we could cache indirect item or part of it in
the inode to avoid search_by_key in case of subsequent the inode to avoid search_by_key in case of subsequent
...@@ -383,7 +383,7 @@ static int _get_block_create_0(struct inode *inode, sector_t block, ...@@ -383,7 +383,7 @@ static int _get_block_create_0(struct inode *inode, sector_t block,
} else { } else {
chars = ih_item_len(ih) - path.pos_in_item; chars = ih_item_len(ih) - path.pos_in_item;
} }
memcpy(p, B_I_PITEM(bh, ih) + path.pos_in_item, chars); memcpy(p, ih_item_body(bh, ih) + path.pos_in_item, chars);
if (done) if (done)
break; break;
...@@ -404,7 +404,7 @@ static int _get_block_create_0(struct inode *inode, sector_t block, ...@@ -404,7 +404,7 @@ static int _get_block_create_0(struct inode *inode, sector_t block,
// i/o error most likely // i/o error most likely
break; break;
bh = get_last_bh(&path); bh = get_last_bh(&path);
ih = get_ih(&path); ih = tp_item_head(&path);
} while (1); } while (1);
flush_dcache_page(bh_result->b_page); flush_dcache_page(bh_result->b_page);
...@@ -684,8 +684,8 @@ int reiserfs_get_block(struct inode *inode, sector_t block, ...@@ -684,8 +684,8 @@ int reiserfs_get_block(struct inode *inode, sector_t block,
} }
bh = get_last_bh(&path); bh = get_last_bh(&path);
ih = get_ih(&path); ih = tp_item_head(&path);
item = get_item(&path); item = tp_item_body(&path);
pos_in_item = path.pos_in_item; pos_in_item = path.pos_in_item;
fs_gen = get_generation(inode->i_sb); fs_gen = get_generation(inode->i_sb);
...@@ -1031,8 +1031,8 @@ int reiserfs_get_block(struct inode *inode, sector_t block, ...@@ -1031,8 +1031,8 @@ int reiserfs_get_block(struct inode *inode, sector_t block,
goto failure; goto failure;
} }
bh = get_last_bh(&path); bh = get_last_bh(&path);
ih = get_ih(&path); ih = tp_item_head(&path);
item = get_item(&path); item = tp_item_body(&path);
pos_in_item = path.pos_in_item; pos_in_item = path.pos_in_item;
} while (1); } while (1);
...@@ -1133,7 +1133,7 @@ static void init_inode(struct inode *inode, struct treepath *path) ...@@ -1133,7 +1133,7 @@ static void init_inode(struct inode *inode, struct treepath *path)
//int version = ITEM_VERSION_1; //int version = ITEM_VERSION_1;
bh = PATH_PLAST_BUFFER(path); bh = PATH_PLAST_BUFFER(path);
ih = PATH_PITEM_HEAD(path); ih = tp_item_head(path);
copy_key(INODE_PKEY(inode), &(ih->ih_key)); copy_key(INODE_PKEY(inode), &(ih->ih_key));
...@@ -1147,7 +1147,7 @@ static void init_inode(struct inode *inode, struct treepath *path) ...@@ -1147,7 +1147,7 @@ static void init_inode(struct inode *inode, struct treepath *path)
if (stat_data_v1(ih)) { if (stat_data_v1(ih)) {
struct stat_data_v1 *sd = struct stat_data_v1 *sd =
(struct stat_data_v1 *)B_I_PITEM(bh, ih); (struct stat_data_v1 *)ih_item_body(bh, ih);
unsigned long blocks; unsigned long blocks;
set_inode_item_key_version(inode, KEY_FORMAT_3_5); set_inode_item_key_version(inode, KEY_FORMAT_3_5);
...@@ -1195,7 +1195,7 @@ static void init_inode(struct inode *inode, struct treepath *path) ...@@ -1195,7 +1195,7 @@ static void init_inode(struct inode *inode, struct treepath *path)
} else { } else {
// new stat data found, but object may have old items // new stat data found, but object may have old items
// (directories and symlinks) // (directories and symlinks)
struct stat_data *sd = (struct stat_data *)B_I_PITEM(bh, ih); struct stat_data *sd = (struct stat_data *)ih_item_body(bh, ih);
inode->i_mode = sd_v2_mode(sd); inode->i_mode = sd_v2_mode(sd);
set_nlink(inode, sd_v2_nlink(sd)); set_nlink(inode, sd_v2_nlink(sd));
...@@ -1307,7 +1307,7 @@ static void update_stat_data(struct treepath *path, struct inode *inode, ...@@ -1307,7 +1307,7 @@ static void update_stat_data(struct treepath *path, struct inode *inode,
struct item_head *ih; struct item_head *ih;
bh = PATH_PLAST_BUFFER(path); bh = PATH_PLAST_BUFFER(path);
ih = PATH_PITEM_HEAD(path); ih = tp_item_head(path);
if (!is_statdata_le_ih(ih)) if (!is_statdata_le_ih(ih))
reiserfs_panic(inode->i_sb, "vs-13065", "key %k, found item %h", reiserfs_panic(inode->i_sb, "vs-13065", "key %k, found item %h",
...@@ -1315,9 +1315,9 @@ static void update_stat_data(struct treepath *path, struct inode *inode, ...@@ -1315,9 +1315,9 @@ static void update_stat_data(struct treepath *path, struct inode *inode,
if (stat_data_v1(ih)) { if (stat_data_v1(ih)) {
// path points to old stat data // path points to old stat data
inode2sd_v1(B_I_PITEM(bh, ih), inode, size); inode2sd_v1(ih_item_body(bh, ih), inode, size);
} else { } else {
inode2sd(B_I_PITEM(bh, ih), inode, size); inode2sd(ih_item_body(bh, ih), inode, size);
} }
return; return;
...@@ -1368,7 +1368,7 @@ void reiserfs_update_sd_size(struct reiserfs_transaction_handle *th, ...@@ -1368,7 +1368,7 @@ void reiserfs_update_sd_size(struct reiserfs_transaction_handle *th,
** search if the stat data item has moved ** search if the stat data item has moved
*/ */
bh = get_last_bh(&path); bh = get_last_bh(&path);
ih = get_ih(&path); ih = tp_item_head(&path);
copy_item_head(&tmp_ih, ih); copy_item_head(&tmp_ih, ih);
fs_gen = get_generation(inode->i_sb); fs_gen = get_generation(inode->i_sb);
reiserfs_prepare_for_journal(inode->i_sb, bh, 1); reiserfs_prepare_for_journal(inode->i_sb, bh, 1);
...@@ -2232,8 +2232,8 @@ static int map_block_for_writepage(struct inode *inode, ...@@ -2232,8 +2232,8 @@ static int map_block_for_writepage(struct inode *inode,
} }
bh = get_last_bh(&path); bh = get_last_bh(&path);
ih = get_ih(&path); ih = tp_item_head(&path);
item = get_item(&path); item = tp_item_body(&path);
pos_in_item = path.pos_in_item; pos_in_item = path.pos_in_item;
/* we've found an unformatted node */ /* we've found an unformatted node */
...@@ -2281,7 +2281,7 @@ static int map_block_for_writepage(struct inode *inode, ...@@ -2281,7 +2281,7 @@ static int map_block_for_writepage(struct inode *inode,
goto research; goto research;
} }
memcpy(B_I_PITEM(bh, ih) + pos_in_item, p + bytes_copied, memcpy(ih_item_body(bh, ih) + pos_in_item, p + bytes_copied,
copy_size); copy_size);
journal_mark_dirty(&th, inode->i_sb, bh); journal_mark_dirty(&th, inode->i_sb, bh);
......
...@@ -396,7 +396,7 @@ static void direntry_print_item(struct item_head *ih, char *item) ...@@ -396,7 +396,7 @@ static void direntry_print_item(struct item_head *ih, char *item)
deh = (struct reiserfs_de_head *)item; deh = (struct reiserfs_de_head *)item;
for (i = 0; i < I_ENTRY_COUNT(ih); i++, deh++) { for (i = 0; i < ih_entry_count(ih); i++, deh++) {
namelen = namelen =
(i ? (deh_location(deh - 1)) : ih_item_len(ih)) - (i ? (deh_location(deh - 1)) : ih_item_len(ih)) -
deh_location(deh); deh_location(deh);
...@@ -430,7 +430,7 @@ static void direntry_check_item(struct item_head *ih, char *item) ...@@ -430,7 +430,7 @@ static void direntry_check_item(struct item_head *ih, char *item)
// FIXME: type something here! // FIXME: type something here!
deh = (struct reiserfs_de_head *)item; deh = (struct reiserfs_de_head *)item;
for (i = 0; i < I_ENTRY_COUNT(ih); i++, deh++) { for (i = 0; i < ih_entry_count(ih); i++, deh++) {
; ;
} }
} }
......
This diff is collapsed.
...@@ -31,7 +31,7 @@ static int bin_search_in_dir_item(struct reiserfs_dir_entry *de, loff_t off) ...@@ -31,7 +31,7 @@ static int bin_search_in_dir_item(struct reiserfs_dir_entry *de, loff_t off)
int rbound, lbound, j; int rbound, lbound, j;
lbound = 0; lbound = 0;
rbound = I_ENTRY_COUNT(ih) - 1; rbound = ih_entry_count(ih) - 1;
for (j = (rbound + lbound) / 2; lbound <= rbound; for (j = (rbound + lbound) / 2; lbound <= rbound;
j = (rbound + lbound) / 2) { j = (rbound + lbound) / 2) {
...@@ -57,7 +57,7 @@ static inline void set_de_item_location(struct reiserfs_dir_entry *de, ...@@ -57,7 +57,7 @@ static inline void set_de_item_location(struct reiserfs_dir_entry *de,
struct treepath *path) struct treepath *path)
{ {
de->de_bh = get_last_bh(path); de->de_bh = get_last_bh(path);
de->de_ih = get_ih(path); de->de_ih = tp_item_head(path);
de->de_deh = B_I_DEH(de->de_bh, de->de_ih); de->de_deh = B_I_DEH(de->de_bh, de->de_ih);
de->de_item_num = PATH_LAST_POSITION(path); de->de_item_num = PATH_LAST_POSITION(path);
} }
...@@ -71,7 +71,7 @@ inline void set_de_name_and_namelen(struct reiserfs_dir_entry *de) ...@@ -71,7 +71,7 @@ inline void set_de_name_and_namelen(struct reiserfs_dir_entry *de)
de->de_entrylen = entry_length(de->de_bh, de->de_ih, de->de_entry_num); de->de_entrylen = entry_length(de->de_bh, de->de_ih, de->de_entry_num);
de->de_namelen = de->de_entrylen - (de_with_sd(deh) ? SD_SIZE : 0); de->de_namelen = de->de_entrylen - (de_with_sd(deh) ? SD_SIZE : 0);
de->de_name = B_I_PITEM(de->de_bh, de->de_ih) + deh_location(deh); de->de_name = ih_item_body(de->de_bh, de->de_ih) + deh_location(deh);
if (de->de_name[de->de_namelen - 1] == 0) if (de->de_name[de->de_namelen - 1] == 0)
de->de_namelen = strlen(de->de_name); de->de_namelen = strlen(de->de_name);
} }
...@@ -220,7 +220,7 @@ static int linear_search_in_dir_item(struct cpu_key *key, ...@@ -220,7 +220,7 @@ static int linear_search_in_dir_item(struct cpu_key *key,
i = de->de_entry_num; i = de->de_entry_num;
if (i == I_ENTRY_COUNT(de->de_ih) || if (i == ih_entry_count(de->de_ih) ||
GET_HASH_VALUE(deh_offset(deh + i)) != GET_HASH_VALUE(deh_offset(deh + i)) !=
GET_HASH_VALUE(cpu_key_k_offset(key))) { GET_HASH_VALUE(cpu_key_k_offset(key))) {
i--; i--;
...@@ -1331,7 +1331,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -1331,7 +1331,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
return -EIO; return -EIO;
} }
copy_item_head(&old_entry_ih, get_ih(&old_entry_path)); copy_item_head(&old_entry_ih, tp_item_head(&old_entry_path));
reiserfs_prepare_for_journal(old_inode->i_sb, old_de.de_bh, 1); reiserfs_prepare_for_journal(old_inode->i_sb, old_de.de_bh, 1);
...@@ -1351,7 +1351,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -1351,7 +1351,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
return -EIO; return -EIO;
} }
copy_item_head(&new_entry_ih, get_ih(&new_entry_path)); copy_item_head(&new_entry_ih, tp_item_head(&new_entry_path));
reiserfs_prepare_for_journal(old_inode->i_sb, new_de.de_bh, 1); reiserfs_prepare_for_journal(old_inode->i_sb, new_de.de_bh, 1);
...@@ -1369,7 +1369,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry, ...@@ -1369,7 +1369,7 @@ static int reiserfs_rename(struct inode *old_dir, struct dentry *old_dentry,
return -EIO; return -EIO;
} }
copy_item_head(&dot_dot_ih, copy_item_head(&dot_dot_ih,
get_ih(&dot_dot_entry_path)); tp_item_head(&dot_dot_entry_path));
// node containing ".." gets into transaction // node containing ".." gets into transaction
reiserfs_prepare_for_journal(old_inode->i_sb, reiserfs_prepare_for_journal(old_inode->i_sb,
dot_dot_de.de_bh, 1); dot_dot_de.de_bh, 1);
......
...@@ -439,7 +439,7 @@ static int print_internal(struct buffer_head *bh, int first, int last) ...@@ -439,7 +439,7 @@ static int print_internal(struct buffer_head *bh, int first, int last)
dc = B_N_CHILD(bh, from); dc = B_N_CHILD(bh, from);
reiserfs_printk("PTR %d: %y ", from, dc); reiserfs_printk("PTR %d: %y ", from, dc);
for (i = from, key = B_N_PDELIM_KEY(bh, from), dc++; i < to; for (i = from, key = internal_key(bh, from), dc++; i < to;
i++, key++, dc++) { i++, key++, dc++) {
reiserfs_printk("KEY %d: %k PTR %d: %y ", i, key, i + 1, dc); reiserfs_printk("KEY %d: %k PTR %d: %y ", i, key, i + 1, dc);
if (i && i % 4 == 0) if (i && i % 4 == 0)
...@@ -463,7 +463,7 @@ static int print_leaf(struct buffer_head *bh, int print_mode, int first, ...@@ -463,7 +463,7 @@ static int print_leaf(struct buffer_head *bh, int print_mode, int first,
check_leaf(bh); check_leaf(bh);
blkh = B_BLK_HEAD(bh); blkh = B_BLK_HEAD(bh);
ih = B_N_PITEM_HEAD(bh, 0); ih = item_head(bh, 0);
nr = blkh_nr_item(blkh); nr = blkh_nr_item(blkh);
printk printk
...@@ -496,7 +496,7 @@ static int print_leaf(struct buffer_head *bh, int print_mode, int first, ...@@ -496,7 +496,7 @@ static int print_leaf(struct buffer_head *bh, int print_mode, int first,
("-------------------------------------------------------------------------------\n"); ("-------------------------------------------------------------------------------\n");
reiserfs_printk("|%2d| %h |\n", i, ih); reiserfs_printk("|%2d| %h |\n", i, ih);
if (print_mode & PRINT_LEAF_ITEMS) if (print_mode & PRINT_LEAF_ITEMS)
op_print_item(ih, B_I_PITEM(bh, ih)); op_print_item(ih, ih_item_body(bh, ih));
} }
printk printk
...@@ -744,8 +744,8 @@ void check_leaf(struct buffer_head *bh) ...@@ -744,8 +744,8 @@ void check_leaf(struct buffer_head *bh)
if (!bh) if (!bh)
return; return;
check_leaf_block_head(bh); check_leaf_block_head(bh);
for (i = 0, ih = B_N_PITEM_HEAD(bh, 0); i < B_NR_ITEMS(bh); i++, ih++) for (i = 0, ih = item_head(bh, 0); i < B_NR_ITEMS(bh); i++, ih++)
op_check_item(ih, B_I_PITEM(bh, ih)); op_check_item(ih, ih_item_body(bh, ih));
} }
void check_internal(struct buffer_head *bh) void check_internal(struct buffer_head *bh)
......
...@@ -1277,9 +1277,11 @@ static inline loff_t le_ih_k_offset(const struct item_head *ih) ...@@ -1277,9 +1277,11 @@ static inline loff_t le_ih_k_offset(const struct item_head *ih)
static inline loff_t le_key_k_type(int version, const struct reiserfs_key *key) static inline loff_t le_key_k_type(int version, const struct reiserfs_key *key)
{ {
return (version == KEY_FORMAT_3_5) ? if (version == KEY_FORMAT_3_5) {
uniqueness2type(le32_to_cpu(key->u.k_offset_v1.k_uniqueness)) : loff_t val = le32_to_cpu(key->u.k_offset_v1.k_uniqueness);
offset_v2_k_type(&(key->u.k_offset_v2)); return uniqueness2type(val);
} else
return offset_v2_k_type(&(key->u.k_offset_v2));
} }
static inline loff_t le_ih_k_type(const struct item_head *ih) static inline loff_t le_ih_k_type(const struct item_head *ih)
...@@ -1290,8 +1292,22 @@ static inline loff_t le_ih_k_type(const struct item_head *ih) ...@@ -1290,8 +1292,22 @@ static inline loff_t le_ih_k_type(const struct item_head *ih)
static inline void set_le_key_k_offset(int version, struct reiserfs_key *key, static inline void set_le_key_k_offset(int version, struct reiserfs_key *key,
loff_t offset) loff_t offset)
{ {
(version == KEY_FORMAT_3_5) ? (void)(key->u.k_offset_v1.k_offset = cpu_to_le32(offset)) : /* jdm check */ if (version == KEY_FORMAT_3_5)
(void)(set_offset_v2_k_offset(&(key->u.k_offset_v2), offset)); key->u.k_offset_v1.k_offset = cpu_to_le32(offset);
else
set_offset_v2_k_offset(&key->u.k_offset_v2, offset);
}
static inline void add_le_key_k_offset(int version, struct reiserfs_key *key,
loff_t offset)
{
set_le_key_k_offset(version, key,
le_key_k_offset(version, key) + offset);
}
static inline void add_le_ih_k_offset(struct item_head *ih, loff_t offset)
{
add_le_key_k_offset(ih_version(ih), &(ih->ih_key), offset);
} }
static inline void set_le_ih_k_offset(struct item_head *ih, loff_t offset) static inline void set_le_ih_k_offset(struct item_head *ih, loff_t offset)
...@@ -1302,10 +1318,11 @@ static inline void set_le_ih_k_offset(struct item_head *ih, loff_t offset) ...@@ -1302,10 +1318,11 @@ static inline void set_le_ih_k_offset(struct item_head *ih, loff_t offset)
static inline void set_le_key_k_type(int version, struct reiserfs_key *key, static inline void set_le_key_k_type(int version, struct reiserfs_key *key,
int type) int type)
{ {
(version == KEY_FORMAT_3_5) ? if (version == KEY_FORMAT_3_5) {
(void)(key->u.k_offset_v1.k_uniqueness = type = type2uniqueness(type);
cpu_to_le32(type2uniqueness(type))) key->u.k_offset_v1.k_uniqueness = cpu_to_le32(type);
: (void)(set_offset_v2_k_type(&(key->u.k_offset_v2), type)); } else
set_offset_v2_k_type(&key->u.k_offset_v2, type);
} }
static inline void set_le_ih_k_type(struct item_head *ih, int type) static inline void set_le_ih_k_type(struct item_head *ih, int type)
...@@ -1723,39 +1740,6 @@ extern void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid, ...@@ -1723,39 +1740,6 @@ extern void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid,
extern void make_empty_dir_item(char *body, __le32 dirid, __le32 objid, extern void make_empty_dir_item(char *body, __le32 dirid, __le32 objid,
__le32 par_dirid, __le32 par_objid); __le32 par_dirid, __le32 par_objid);
/* array of the entry headers */
/* get item body */
#define B_I_PITEM(bh,ih) ( (bh)->b_data + ih_location(ih) )
#define B_I_DEH(bh,ih) ((struct reiserfs_de_head *)(B_I_PITEM(bh,ih)))
/* length of the directory entry in directory item. This define
calculates length of i-th directory entry using directory entry
locations from dir entry head. When it calculates length of 0-th
directory entry, it uses length of whole item in place of entry
location of the non-existent following entry in the calculation.
See picture above.*/
/*
#define I_DEH_N_ENTRY_LENGTH(ih,deh,i) \
((i) ? (deh_location((deh)-1) - deh_location((deh))) : (ih_item_len((ih)) - deh_location((deh))))
*/
static inline int entry_length(const struct buffer_head *bh,
const struct item_head *ih, int pos_in_item)
{
struct reiserfs_de_head *deh;
deh = B_I_DEH(bh, ih) + pos_in_item;
if (pos_in_item)
return deh_location(deh - 1) - deh_location(deh);
return ih_item_len(ih) - deh_location(deh);
}
/* number of entries in the directory item, depends on ENTRY_COUNT being at the start of directory dynamic data. */
#define I_ENTRY_COUNT(ih) (ih_entry_count((ih)))
/* name by bh, ih and entry_num */
#define B_I_E_NAME(bh,ih,entry_num) ((char *)(bh->b_data + ih_location(ih) + deh_location(B_I_DEH(bh,ih)+(entry_num))))
// two entries per block (at least) // two entries per block (at least)
#define REISERFS_MAX_NAME(block_size) 255 #define REISERFS_MAX_NAME(block_size) 255
...@@ -1783,7 +1767,8 @@ struct reiserfs_dir_entry { ...@@ -1783,7 +1767,8 @@ struct reiserfs_dir_entry {
/* these defines are useful when a particular member of a reiserfs_dir_entry is needed */ /* these defines are useful when a particular member of a reiserfs_dir_entry is needed */
/* pointer to file name, stored in entry */ /* pointer to file name, stored in entry */
#define B_I_DEH_ENTRY_FILE_NAME(bh,ih,deh) (B_I_PITEM (bh, ih) + deh_location(deh)) #define B_I_DEH_ENTRY_FILE_NAME(bh, ih, deh) \
(ih_item_body(bh, ih) + deh_location(deh))
/* length of name */ /* length of name */
#define I_DEH_N_ENTRY_FILE_NAME_LENGTH(ih,deh,entry_num) \ #define I_DEH_N_ENTRY_FILE_NAME_LENGTH(ih,deh,entry_num) \
...@@ -1918,8 +1903,6 @@ struct treepath var = {.path_length = ILLEGAL_PATH_ELEMENT_OFFSET, .reada = 0,} ...@@ -1918,8 +1903,6 @@ struct treepath var = {.path_length = ILLEGAL_PATH_ELEMENT_OFFSET, .reada = 0,}
dumping paths... -Hans */ dumping paths... -Hans */
#define PATH_LAST_POSITION(path) (PATH_OFFSET_POSITION((path), (path)->path_length)) #define PATH_LAST_POSITION(path) (PATH_OFFSET_POSITION((path), (path)->path_length))
#define PATH_PITEM_HEAD(path) B_N_PITEM_HEAD(PATH_PLAST_BUFFER(path), PATH_LAST_POSITION(path))
/* in do_balance leaf has h == 0 in contrast with path structure, /* in do_balance leaf has h == 0 in contrast with path structure,
where root has level == 0. That is why we need these defines */ where root has level == 0. That is why we need these defines */
#define PATH_H_PBUFFER(path, h) PATH_OFFSET_PBUFFER (path, path->path_length - (h)) /* tb->S[h] */ #define PATH_H_PBUFFER(path, h) PATH_OFFSET_PBUFFER (path, path->path_length - (h)) /* tb->S[h] */
...@@ -1929,13 +1912,89 @@ struct treepath var = {.path_length = ILLEGAL_PATH_ELEMENT_OFFSET, .reada = 0,} ...@@ -1929,13 +1912,89 @@ struct treepath var = {.path_length = ILLEGAL_PATH_ELEMENT_OFFSET, .reada = 0,}
#define PATH_H_PATH_OFFSET(path, n_h) ((path)->path_length - (n_h)) #define PATH_H_PATH_OFFSET(path, n_h) ((path)->path_length - (n_h))
static inline void *reiserfs_node_data(const struct buffer_head *bh)
{
return bh->b_data + sizeof(struct block_head);
}
/* get key from internal node */
static inline struct reiserfs_key *internal_key(struct buffer_head *bh,
int item_num)
{
struct reiserfs_key *key = reiserfs_node_data(bh);
return &key[item_num];
}
/* get the item header from leaf node */
static inline struct item_head *item_head(const struct buffer_head *bh,
int item_num)
{
struct item_head *ih = reiserfs_node_data(bh);
return &ih[item_num];
}
/* get the key from leaf node */
static inline struct reiserfs_key *leaf_key(const struct buffer_head *bh,
int item_num)
{
return &item_head(bh, item_num)->ih_key;
}
static inline void *ih_item_body(const struct buffer_head *bh,
const struct item_head *ih)
{
return bh->b_data + ih_location(ih);
}
/* get item body from leaf node */
static inline void *item_body(const struct buffer_head *bh, int item_num)
{
return ih_item_body(bh, item_head(bh, item_num));
}
static inline struct item_head *tp_item_head(const struct treepath *path)
{
return item_head(PATH_PLAST_BUFFER(path), PATH_LAST_POSITION(path));
}
static inline void *tp_item_body(const struct treepath *path)
{
return item_body(PATH_PLAST_BUFFER(path), PATH_LAST_POSITION(path));
}
#define get_last_bh(path) PATH_PLAST_BUFFER(path) #define get_last_bh(path) PATH_PLAST_BUFFER(path)
#define get_ih(path) PATH_PITEM_HEAD(path)
#define get_item_pos(path) PATH_LAST_POSITION(path) #define get_item_pos(path) PATH_LAST_POSITION(path)
#define get_item(path) ((void *)B_N_PITEM(PATH_PLAST_BUFFER(path), PATH_LAST_POSITION (path)))
#define item_moved(ih,path) comp_items(ih, path) #define item_moved(ih,path) comp_items(ih, path)
#define path_changed(ih,path) comp_items (ih, path) #define path_changed(ih,path) comp_items (ih, path)
/* array of the entry headers */
/* get item body */
#define B_I_DEH(bh, ih) ((struct reiserfs_de_head *)(ih_item_body(bh, ih)))
/* length of the directory entry in directory item. This define
calculates length of i-th directory entry using directory entry
locations from dir entry head. When it calculates length of 0-th
directory entry, it uses length of whole item in place of entry
location of the non-existent following entry in the calculation.
See picture above.*/
/*
#define I_DEH_N_ENTRY_LENGTH(ih,deh,i) \
((i) ? (deh_location((deh)-1) - deh_location((deh))) : (ih_item_len((ih)) - deh_location((deh))))
*/
static inline int entry_length(const struct buffer_head *bh,
const struct item_head *ih, int pos_in_item)
{
struct reiserfs_de_head *deh;
deh = B_I_DEH(bh, ih) + pos_in_item;
if (pos_in_item)
return deh_location(deh - 1) - deh_location(deh);
return ih_item_len(ih) - deh_location(deh);
}
/***************************************************************************/ /***************************************************************************/
/* MISC */ /* MISC */
/***************************************************************************/ /***************************************************************************/
...@@ -2226,22 +2285,6 @@ extern struct item_operations *item_ops[TYPE_ANY + 1]; ...@@ -2226,22 +2285,6 @@ extern struct item_operations *item_ops[TYPE_ANY + 1];
/* number of bytes contained by the direct item or the unformatted nodes the indirect item points to */ /* number of bytes contained by the direct item or the unformatted nodes the indirect item points to */
/* get the item header */
#define B_N_PITEM_HEAD(bh,item_num) ( (struct item_head * )((bh)->b_data + BLKH_SIZE) + (item_num) )
/* get key */
#define B_N_PDELIM_KEY(bh,item_num) ( (struct reiserfs_key * )((bh)->b_data + BLKH_SIZE) + (item_num) )
/* get the key */
#define B_N_PKEY(bh,item_num) ( &(B_N_PITEM_HEAD(bh,item_num)->ih_key) )
/* get item body */
#define B_N_PITEM(bh,item_num) ( (bh)->b_data + ih_location(B_N_PITEM_HEAD((bh),(item_num))))
/* get the stat data by the buffer header and the item order */
#define B_N_STAT_DATA(bh,nr) \
( (struct stat_data *)((bh)->b_data + ih_location(B_N_PITEM_HEAD((bh),(nr))) ) )
/* following defines use reiserfs buffer header and item header */ /* following defines use reiserfs buffer header and item header */
/* get stat-data */ /* get stat-data */
...@@ -2253,8 +2296,10 @@ extern struct item_operations *item_ops[TYPE_ANY + 1]; ...@@ -2253,8 +2296,10 @@ extern struct item_operations *item_ops[TYPE_ANY + 1];
/* indirect items consist of entries which contain blocknrs, pos /* indirect items consist of entries which contain blocknrs, pos
indicates which entry, and B_I_POS_UNFM_POINTER resolves to the indicates which entry, and B_I_POS_UNFM_POINTER resolves to the
blocknr contained by the entry pos points to */ blocknr contained by the entry pos points to */
#define B_I_POS_UNFM_POINTER(bh,ih,pos) le32_to_cpu(*(((unp_t *)B_I_PITEM(bh,ih)) + (pos))) #define B_I_POS_UNFM_POINTER(bh, ih, pos) \
#define PUT_B_I_POS_UNFM_POINTER(bh,ih,pos, val) do {*(((unp_t *)B_I_PITEM(bh,ih)) + (pos)) = cpu_to_le32(val); } while (0) le32_to_cpu(*(((unp_t *)ih_item_body(bh, ih)) + (pos)))
#define PUT_B_I_POS_UNFM_POINTER(bh, ih, pos, val) \
(*(((unp_t *)ih_item_body(bh, ih)) + (pos)) = cpu_to_le32(val))
struct reiserfs_iget_args { struct reiserfs_iget_args {
__u32 objectid; __u32 objectid;
......
...@@ -272,7 +272,7 @@ static inline const struct reiserfs_key *get_lkey(const struct treepath *chk_pat ...@@ -272,7 +272,7 @@ static inline const struct reiserfs_key *get_lkey(const struct treepath *chk_pat
return &MAX_KEY; return &MAX_KEY;
/* Return delimiting key if position in the parent is not equal to zero. */ /* Return delimiting key if position in the parent is not equal to zero. */
if (position) if (position)
return B_N_PDELIM_KEY(parent, position - 1); return internal_key(parent, position - 1);
} }
/* Return MIN_KEY if we are in the root of the buffer tree. */ /* Return MIN_KEY if we are in the root of the buffer tree. */
if (PATH_OFFSET_PBUFFER(chk_path, FIRST_PATH_ELEMENT_OFFSET)-> if (PATH_OFFSET_PBUFFER(chk_path, FIRST_PATH_ELEMENT_OFFSET)->
...@@ -315,7 +315,7 @@ inline const struct reiserfs_key *get_rkey(const struct treepath *chk_path, ...@@ -315,7 +315,7 @@ inline const struct reiserfs_key *get_rkey(const struct treepath *chk_path,
return &MIN_KEY; return &MIN_KEY;
/* Return delimiting key if position in the parent is not the last one. */ /* Return delimiting key if position in the parent is not the last one. */
if (position != B_NR_ITEMS(parent)) if (position != B_NR_ITEMS(parent))
return B_N_PDELIM_KEY(parent, position); return internal_key(parent, position);
} }
/* Return MAX_KEY if we are in the root of the buffer tree. */ /* Return MAX_KEY if we are in the root of the buffer tree. */
if (PATH_OFFSET_PBUFFER(chk_path, FIRST_PATH_ELEMENT_OFFSET)-> if (PATH_OFFSET_PBUFFER(chk_path, FIRST_PATH_ELEMENT_OFFSET)->
...@@ -732,7 +732,7 @@ int search_by_key(struct super_block *sb, const struct cpu_key *key, /* Key to s ...@@ -732,7 +732,7 @@ int search_by_key(struct super_block *sb, const struct cpu_key *key, /* Key to s
"vs-5152: tree level (%d) is less than stop level (%d)", "vs-5152: tree level (%d) is less than stop level (%d)",
node_level, stop_level); node_level, stop_level);
retval = bin_search(key, B_N_PITEM_HEAD(bh, 0), retval = bin_search(key, item_head(bh, 0),
B_NR_ITEMS(bh), B_NR_ITEMS(bh),
(node_level == (node_level ==
DISK_LEAF_NODE_LEVEL) ? IH_SIZE : DISK_LEAF_NODE_LEVEL) ? IH_SIZE :
...@@ -779,7 +779,7 @@ int search_by_key(struct super_block *sb, const struct cpu_key *key, /* Key to s ...@@ -779,7 +779,7 @@ int search_by_key(struct super_block *sb, const struct cpu_key *key, /* Key to s
/* /*
* check to make sure we're in the same object * check to make sure we're in the same object
*/ */
le_key = B_N_PDELIM_KEY(bh, pos); le_key = internal_key(bh, pos);
if (le32_to_cpu(le_key->k_objectid) != if (le32_to_cpu(le_key->k_objectid) !=
key->on_disk_key.k_objectid) { key->on_disk_key.k_objectid) {
break; break;
...@@ -830,7 +830,7 @@ int search_for_position_by_key(struct super_block *sb, /* Pointer to the super b ...@@ -830,7 +830,7 @@ int search_for_position_by_key(struct super_block *sb, /* Pointer to the super b
if (retval == ITEM_FOUND) { if (retval == ITEM_FOUND) {
RFALSE(!ih_item_len RFALSE(!ih_item_len
(B_N_PITEM_HEAD (item_head
(PATH_PLAST_BUFFER(search_path), (PATH_PLAST_BUFFER(search_path),
PATH_LAST_POSITION(search_path))), PATH_LAST_POSITION(search_path))),
"PAP-5165: item length equals zero"); "PAP-5165: item length equals zero");
...@@ -844,7 +844,7 @@ int search_for_position_by_key(struct super_block *sb, /* Pointer to the super b ...@@ -844,7 +844,7 @@ int search_for_position_by_key(struct super_block *sb, /* Pointer to the super b
/* Item is not found. Set path to the previous item. */ /* Item is not found. Set path to the previous item. */
p_le_ih = p_le_ih =
B_N_PITEM_HEAD(PATH_PLAST_BUFFER(search_path), item_head(PATH_PLAST_BUFFER(search_path),
--PATH_LAST_POSITION(search_path)); --PATH_LAST_POSITION(search_path));
blk_size = sb->s_blocksize; blk_size = sb->s_blocksize;
...@@ -892,7 +892,7 @@ int comp_items(const struct item_head *stored_ih, const struct treepath *path) ...@@ -892,7 +892,7 @@ int comp_items(const struct item_head *stored_ih, const struct treepath *path)
return 1; return 1;
/* we need only to know, whether it is the same item */ /* we need only to know, whether it is the same item */
ih = get_ih(path); ih = tp_item_head(path);
return memcmp(stored_ih, ih, IH_SIZE); return memcmp(stored_ih, ih, IH_SIZE);
} }
...@@ -987,7 +987,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st ...@@ -987,7 +987,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st
) )
{ {
struct super_block *sb = inode->i_sb; struct super_block *sb = inode->i_sb;
struct item_head *p_le_ih = PATH_PITEM_HEAD(path); struct item_head *p_le_ih = tp_item_head(path);
struct buffer_head *bh = PATH_PLAST_BUFFER(path); struct buffer_head *bh = PATH_PLAST_BUFFER(path);
BUG_ON(!th->t_trans_id); BUG_ON(!th->t_trans_id);
...@@ -1033,7 +1033,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st ...@@ -1033,7 +1033,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st
need_re_search = 0; need_re_search = 0;
*cut_size = 0; *cut_size = 0;
bh = PATH_PLAST_BUFFER(path); bh = PATH_PLAST_BUFFER(path);
copy_item_head(&s_ih, PATH_PITEM_HEAD(path)); copy_item_head(&s_ih, tp_item_head(path));
pos = I_UNFM_NUM(&s_ih); pos = I_UNFM_NUM(&s_ih);
while (le_ih_k_offset (&s_ih) + (pos - 1) * blk_size > new_file_length) { while (le_ih_k_offset (&s_ih) + (pos - 1) * blk_size > new_file_length) {
...@@ -1047,7 +1047,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st ...@@ -1047,7 +1047,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st
reiserfs_transaction_free_space(th) < JOURNAL_FOR_FREE_BLOCK_AND_UPDATE_SD) reiserfs_transaction_free_space(th) < JOURNAL_FOR_FREE_BLOCK_AND_UPDATE_SD)
break; break;
unfm = (__le32 *)B_I_PITEM(bh, &s_ih) + pos - 1; unfm = (__le32 *)ih_item_body(bh, &s_ih) + pos - 1;
block = get_block_num(unfm, 0); block = get_block_num(unfm, 0);
if (block != 0) { if (block != 0) {
...@@ -1095,7 +1095,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st ...@@ -1095,7 +1095,7 @@ static char prepare_for_delete_or_cut(struct reiserfs_transaction_handle *th, st
static int calc_deleted_bytes_number(struct tree_balance *tb, char mode) static int calc_deleted_bytes_number(struct tree_balance *tb, char mode)
{ {
int del_size; int del_size;
struct item_head *p_le_ih = PATH_PITEM_HEAD(tb->tb_path); struct item_head *p_le_ih = tp_item_head(tb->tb_path);
if (is_statdata_le_ih(p_le_ih)) if (is_statdata_le_ih(p_le_ih))
return 0; return 0;
...@@ -1212,7 +1212,7 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th, ...@@ -1212,7 +1212,7 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th,
RFALSE(mode != M_DELETE, "PAP-5320: mode must be M_DELETE"); RFALSE(mode != M_DELETE, "PAP-5320: mode must be M_DELETE");
copy_item_head(&s_ih, PATH_PITEM_HEAD(path)); copy_item_head(&s_ih, tp_item_head(path));
s_del_balance.insert_size[0] = del_size; s_del_balance.insert_size[0] = del_size;
ret_value = fix_nodes(M_DELETE, &s_del_balance, NULL, NULL); ret_value = fix_nodes(M_DELETE, &s_del_balance, NULL, NULL);
...@@ -1240,7 +1240,7 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th, ...@@ -1240,7 +1240,7 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th,
} }
// reiserfs_delete_item returns item length when success // reiserfs_delete_item returns item length when success
ret_value = calc_deleted_bytes_number(&s_del_balance, M_DELETE); ret_value = calc_deleted_bytes_number(&s_del_balance, M_DELETE);
q_ih = get_ih(path); q_ih = tp_item_head(path);
quota_cut_bytes = ih_item_len(q_ih); quota_cut_bytes = ih_item_len(q_ih);
/* hack so the quota code doesn't have to guess if the file /* hack so the quota code doesn't have to guess if the file
...@@ -1284,7 +1284,7 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th, ...@@ -1284,7 +1284,7 @@ int reiserfs_delete_item(struct reiserfs_transaction_handle *th,
data = kmap_atomic(un_bh->b_page); data = kmap_atomic(un_bh->b_page);
off = ((le_ih_k_offset(&s_ih) - 1) & (PAGE_CACHE_SIZE - 1)); off = ((le_ih_k_offset(&s_ih) - 1) & (PAGE_CACHE_SIZE - 1));
memcpy(data + off, memcpy(data + off,
B_I_PITEM(PATH_PLAST_BUFFER(path), &s_ih), ih_item_body(PATH_PLAST_BUFFER(path), &s_ih),
ret_value); ret_value);
kunmap_atomic(data); kunmap_atomic(data);
} }
...@@ -1362,11 +1362,11 @@ void reiserfs_delete_solid_item(struct reiserfs_transaction_handle *th, ...@@ -1362,11 +1362,11 @@ void reiserfs_delete_solid_item(struct reiserfs_transaction_handle *th,
} }
if (!tb_init) { if (!tb_init) {
tb_init = 1; tb_init = 1;
item_len = ih_item_len(PATH_PITEM_HEAD(&path)); item_len = ih_item_len(tp_item_head(&path));
init_tb_struct(th, &tb, th->t_super, &path, init_tb_struct(th, &tb, th->t_super, &path,
-(IH_SIZE + item_len)); -(IH_SIZE + item_len));
} }
quota_cut_bytes = ih_item_len(PATH_PITEM_HEAD(&path)); quota_cut_bytes = ih_item_len(tp_item_head(&path));
retval = fix_nodes(M_DELETE, &tb, NULL, NULL); retval = fix_nodes(M_DELETE, &tb, NULL, NULL);
if (retval == REPEAT_SEARCH) { if (retval == REPEAT_SEARCH) {
...@@ -1521,7 +1521,7 @@ static void indirect_to_direct_roll_back(struct reiserfs_transaction_handle *th, ...@@ -1521,7 +1521,7 @@ static void indirect_to_direct_roll_back(struct reiserfs_transaction_handle *th,
reiserfs_panic(inode->i_sb, "vs-5615", reiserfs_panic(inode->i_sb, "vs-5615",
"found invalid item"); "found invalid item");
RFALSE(path->pos_in_item != RFALSE(path->pos_in_item !=
ih_item_len(PATH_PITEM_HEAD(path)) - 1, ih_item_len(tp_item_head(path)) - 1,
"vs-5616: appended bytes found"); "vs-5616: appended bytes found");
PATH_LAST_POSITION(path)--; PATH_LAST_POSITION(path)--;
...@@ -1671,7 +1671,7 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th, ...@@ -1671,7 +1671,7 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th,
/* Calculate number of bytes that need to be cut from the item. */ /* Calculate number of bytes that need to be cut from the item. */
quota_cut_bytes = quota_cut_bytes =
(mode == (mode ==
M_DELETE) ? ih_item_len(get_ih(path)) : -s_cut_balance. M_DELETE) ? ih_item_len(tp_item_head(path)) : -s_cut_balance.
insert_size[0]; insert_size[0];
if (retval2 == -1) if (retval2 == -1)
ret_value = calc_deleted_bytes_number(&s_cut_balance, mode); ret_value = calc_deleted_bytes_number(&s_cut_balance, mode);
...@@ -1681,7 +1681,7 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th, ...@@ -1681,7 +1681,7 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th,
/* For direct items, we only change the quota when deleting the last /* For direct items, we only change the quota when deleting the last
** item. ** item.
*/ */
p_le_ih = PATH_PITEM_HEAD(s_cut_balance.tb_path); p_le_ih = tp_item_head(s_cut_balance.tb_path);
if (!S_ISLNK(inode->i_mode) && is_direct_le_ih(p_le_ih)) { if (!S_ISLNK(inode->i_mode) && is_direct_le_ih(p_le_ih)) {
if (mode == M_DELETE && if (mode == M_DELETE &&
(le_ih_k_offset(p_le_ih) & (sb->s_blocksize - 1)) == (le_ih_k_offset(p_le_ih) & (sb->s_blocksize - 1)) ==
...@@ -1696,7 +1696,7 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th, ...@@ -1696,7 +1696,7 @@ int reiserfs_cut_from_item(struct reiserfs_transaction_handle *th,
#ifdef CONFIG_REISERFS_CHECK #ifdef CONFIG_REISERFS_CHECK
if (is_inode_locked) { if (is_inode_locked) {
struct item_head *le_ih = struct item_head *le_ih =
PATH_PITEM_HEAD(s_cut_balance.tb_path); tp_item_head(s_cut_balance.tb_path);
/* we are going to complete indirect2direct conversion. Make /* we are going to complete indirect2direct conversion. Make
sure, that we exactly remove last unformatted node pointer sure, that we exactly remove last unformatted node pointer
of the item */ of the item */
...@@ -1819,7 +1819,7 @@ int reiserfs_do_truncate(struct reiserfs_transaction_handle *th, ...@@ -1819,7 +1819,7 @@ int reiserfs_do_truncate(struct reiserfs_transaction_handle *th,
s_search_path.pos_in_item--; s_search_path.pos_in_item--;
/* Get real file size (total length of all file items) */ /* Get real file size (total length of all file items) */
p_le_ih = PATH_PITEM_HEAD(&s_search_path); p_le_ih = tp_item_head(&s_search_path);
if (is_statdata_le_ih(p_le_ih)) if (is_statdata_le_ih(p_le_ih))
file_size = 0; file_size = 0;
else { else {
...@@ -1922,7 +1922,7 @@ int reiserfs_do_truncate(struct reiserfs_transaction_handle *th, ...@@ -1922,7 +1922,7 @@ int reiserfs_do_truncate(struct reiserfs_transaction_handle *th,
static void check_research_for_paste(struct treepath *path, static void check_research_for_paste(struct treepath *path,
const struct cpu_key *key) const struct cpu_key *key)
{ {
struct item_head *found_ih = get_ih(path); struct item_head *found_ih = tp_item_head(path);
if (is_direct_le_ih(found_ih)) { if (is_direct_le_ih(found_ih)) {
if (le_ih_k_offset(found_ih) + if (le_ih_k_offset(found_ih) +
......
...@@ -258,7 +258,7 @@ static int finish_unfinished(struct super_block *s) ...@@ -258,7 +258,7 @@ static int finish_unfinished(struct super_block *s)
break; break;
} }
item_pos--; item_pos--;
ih = B_N_PITEM_HEAD(bh, item_pos); ih = item_head(bh, item_pos);
if (le32_to_cpu(ih->ih_key.k_dir_id) != MAX_KEY_OBJECTID) if (le32_to_cpu(ih->ih_key.k_dir_id) != MAX_KEY_OBJECTID)
/* there are no "save" links anymore */ /* there are no "save" links anymore */
...@@ -271,7 +271,7 @@ static int finish_unfinished(struct super_block *s) ...@@ -271,7 +271,7 @@ static int finish_unfinished(struct super_block *s)
truncate = 0; truncate = 0;
/* reiserfs_iget needs k_dirid and k_objectid only */ /* reiserfs_iget needs k_dirid and k_objectid only */
item = B_I_PITEM(bh, ih); item = ih_item_body(bh, ih);
obj_key.on_disk_key.k_dir_id = le32_to_cpu(*(__le32 *) item); obj_key.on_disk_key.k_dir_id = le32_to_cpu(*(__le32 *) item);
obj_key.on_disk_key.k_objectid = obj_key.on_disk_key.k_objectid =
le32_to_cpu(ih->ih_key.k_objectid); le32_to_cpu(ih->ih_key.k_objectid);
......
...@@ -20,7 +20,7 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode, ...@@ -20,7 +20,7 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode,
{ {
struct super_block *sb = inode->i_sb; struct super_block *sb = inode->i_sb;
struct buffer_head *up_to_date_bh; struct buffer_head *up_to_date_bh;
struct item_head *p_le_ih = PATH_PITEM_HEAD(path); struct item_head *p_le_ih = tp_item_head(path);
unsigned long total_tail = 0; unsigned long total_tail = 0;
struct cpu_key end_key; /* Key to search for the last byte of the struct cpu_key end_key; /* Key to search for the last byte of the
converted item. */ converted item. */
...@@ -55,7 +55,7 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode, ...@@ -55,7 +55,7 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode,
return -EIO; return -EIO;
} }
p_le_ih = PATH_PITEM_HEAD(path); p_le_ih = tp_item_head(path);
unfm_ptr = cpu_to_le32(unbh->b_blocknr); unfm_ptr = cpu_to_le32(unbh->b_blocknr);
...@@ -94,7 +94,7 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode, ...@@ -94,7 +94,7 @@ int direct2indirect(struct reiserfs_transaction_handle *th, struct inode *inode,
POSITION_FOUND) POSITION_FOUND)
reiserfs_panic(sb, "PAP-14050", reiserfs_panic(sb, "PAP-14050",
"direct item (%K) not found", &end_key); "direct item (%K) not found", &end_key);
p_le_ih = PATH_PITEM_HEAD(path); p_le_ih = tp_item_head(path);
RFALSE(!is_direct_le_ih(p_le_ih), RFALSE(!is_direct_le_ih(p_le_ih),
"vs-14055: direct item expected(%K), found %h", "vs-14055: direct item expected(%K), found %h",
&end_key, p_le_ih); &end_key, p_le_ih);
...@@ -194,7 +194,7 @@ int indirect2direct(struct reiserfs_transaction_handle *th, ...@@ -194,7 +194,7 @@ int indirect2direct(struct reiserfs_transaction_handle *th,
*mode = M_SKIP_BALANCING; *mode = M_SKIP_BALANCING;
/* store item head path points to. */ /* store item head path points to. */
copy_item_head(&s_ih, PATH_PITEM_HEAD(path)); copy_item_head(&s_ih, tp_item_head(path));
tail_len = (n_new_file_size & (block_size - 1)); tail_len = (n_new_file_size & (block_size - 1));
if (get_inode_sd_version(inode) == STAT_DATA_V2) if (get_inode_sd_version(inode) == STAT_DATA_V2)
...@@ -220,7 +220,7 @@ int indirect2direct(struct reiserfs_transaction_handle *th, ...@@ -220,7 +220,7 @@ int indirect2direct(struct reiserfs_transaction_handle *th,
reiserfs_panic(sb, "PAP-5520", reiserfs_panic(sb, "PAP-5520",
"item to be converted %K does not exist", "item to be converted %K does not exist",
item_key); item_key);
copy_item_head(&s_ih, PATH_PITEM_HEAD(path)); copy_item_head(&s_ih, tp_item_head(path));
#ifdef CONFIG_REISERFS_CHECK #ifdef CONFIG_REISERFS_CHECK
pos = le_ih_k_offset(&s_ih) - 1 + pos = le_ih_k_offset(&s_ih) - 1 +
(ih_item_len(&s_ih) / UNFM_P_SIZE - (ih_item_len(&s_ih) / UNFM_P_SIZE -
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment