reiserfs: cleanup, remove unnecessary parens in dirent creation
make_empty_dir_item_v1 and make_empty_dir_item also needed a bit of cleanup but it's clearer to use separate pointers rather than the array positions for just two items. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
b491dd1769
commit
16da167c16
1 changed files with 34 additions and 33 deletions
|
@ -281,65 +281,66 @@ static int reiserfs_readdir(struct file *file, struct dir_context *ctx)
|
|||
void make_empty_dir_item_v1(char *body, __le32 dirid, __le32 objid,
|
||||
__le32 par_dirid, __le32 par_objid)
|
||||
{
|
||||
struct reiserfs_de_head *deh;
|
||||
struct reiserfs_de_head *dot, *dotdot;
|
||||
|
||||
memset(body, 0, EMPTY_DIR_SIZE_V1);
|
||||
deh = (struct reiserfs_de_head *)body;
|
||||
dot = (struct reiserfs_de_head *)body;
|
||||
dotdot = dot + 1;
|
||||
|
||||
/* direntry header of "." */
|
||||
put_deh_offset(&(deh[0]), DOT_OFFSET);
|
||||
put_deh_offset(dot, DOT_OFFSET);
|
||||
/* these two are from make_le_item_head, and are are LE */
|
||||
deh[0].deh_dir_id = dirid;
|
||||
deh[0].deh_objectid = objid;
|
||||
deh[0].deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(&(deh[0]), EMPTY_DIR_SIZE_V1 - strlen("."));
|
||||
mark_de_visible(&(deh[0]));
|
||||
dot->deh_dir_id = dirid;
|
||||
dot->deh_objectid = objid;
|
||||
dot->deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(dot, EMPTY_DIR_SIZE_V1 - strlen("."));
|
||||
mark_de_visible(dot);
|
||||
|
||||
/* direntry header of ".." */
|
||||
put_deh_offset(&(deh[1]), DOT_DOT_OFFSET);
|
||||
put_deh_offset(dotdot, DOT_DOT_OFFSET);
|
||||
/* key of ".." for the root directory */
|
||||
/* these two are from the inode, and are are LE */
|
||||
deh[1].deh_dir_id = par_dirid;
|
||||
deh[1].deh_objectid = par_objid;
|
||||
deh[1].deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(&(deh[1]), deh_location(&(deh[0])) - strlen(".."));
|
||||
mark_de_visible(&(deh[1]));
|
||||
dotdot->deh_dir_id = par_dirid;
|
||||
dotdot->deh_objectid = par_objid;
|
||||
dotdot->deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(dotdot, deh_location(dot) - strlen(".."));
|
||||
mark_de_visible(dotdot);
|
||||
|
||||
/* copy ".." and "." */
|
||||
memcpy(body + deh_location(&(deh[0])), ".", 1);
|
||||
memcpy(body + deh_location(&(deh[1])), "..", 2);
|
||||
memcpy(body + deh_location(dot), ".", 1);
|
||||
memcpy(body + deh_location(dotdot), "..", 2);
|
||||
}
|
||||
|
||||
/* compose directory item containing "." and ".." entries */
|
||||
void make_empty_dir_item(char *body, __le32 dirid, __le32 objid,
|
||||
__le32 par_dirid, __le32 par_objid)
|
||||
{
|
||||
struct reiserfs_de_head *deh;
|
||||
struct reiserfs_de_head *dot, *dotdot;
|
||||
|
||||
memset(body, 0, EMPTY_DIR_SIZE);
|
||||
deh = (struct reiserfs_de_head *)body;
|
||||
dot = (struct reiserfs_de_head *)body;
|
||||
dotdot = dot + 1;
|
||||
|
||||
/* direntry header of "." */
|
||||
put_deh_offset(&(deh[0]), DOT_OFFSET);
|
||||
put_deh_offset(dot, DOT_OFFSET);
|
||||
/* these two are from make_le_item_head, and are are LE */
|
||||
deh[0].deh_dir_id = dirid;
|
||||
deh[0].deh_objectid = objid;
|
||||
deh[0].deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(&(deh[0]), EMPTY_DIR_SIZE - ROUND_UP(strlen(".")));
|
||||
mark_de_visible(&(deh[0]));
|
||||
dot->deh_dir_id = dirid;
|
||||
dot->deh_objectid = objid;
|
||||
dot->deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(dot, EMPTY_DIR_SIZE - ROUND_UP(strlen(".")));
|
||||
mark_de_visible(dot);
|
||||
|
||||
/* direntry header of ".." */
|
||||
put_deh_offset(&(deh[1]), DOT_DOT_OFFSET);
|
||||
put_deh_offset(dotdot, DOT_DOT_OFFSET);
|
||||
/* key of ".." for the root directory */
|
||||
/* these two are from the inode, and are are LE */
|
||||
deh[1].deh_dir_id = par_dirid;
|
||||
deh[1].deh_objectid = par_objid;
|
||||
deh[1].deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(&(deh[1]),
|
||||
deh_location(&(deh[0])) - ROUND_UP(strlen("..")));
|
||||
mark_de_visible(&(deh[1]));
|
||||
dotdot->deh_dir_id = par_dirid;
|
||||
dotdot->deh_objectid = par_objid;
|
||||
dotdot->deh_state = 0; /* Endian safe if 0 */
|
||||
put_deh_location(dotdot, deh_location(dot) - ROUND_UP(strlen("..")));
|
||||
mark_de_visible(dotdot);
|
||||
|
||||
/* copy ".." and "." */
|
||||
memcpy(body + deh_location(&(deh[0])), ".", 1);
|
||||
memcpy(body + deh_location(&(deh[1])), "..", 2);
|
||||
memcpy(body + deh_location(dot), ".", 1);
|
||||
memcpy(body + deh_location(dotdot), "..", 2);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue