diff options
Diffstat (limited to 'fs/gfs2/dir.c')
| -rw-r--r-- | fs/gfs2/dir.c | 34 |
1 files changed, 1 insertions, 33 deletions
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c index 297d7e5cebad..25fddc100f18 100644 --- a/fs/gfs2/dir.c +++ b/fs/gfs2/dir.c | |||
| @@ -525,38 +525,6 @@ consist_inode: | |||
| 525 | return ERR_PTR(-EIO); | 525 | return ERR_PTR(-EIO); |
| 526 | } | 526 | } |
| 527 | 527 | ||
| 528 | |||
| 529 | /** | ||
| 530 | * dirent_first - Return the first dirent | ||
| 531 | * @dip: the directory | ||
| 532 | * @bh: The buffer | ||
| 533 | * @dent: Pointer to list of dirents | ||
| 534 | * | ||
| 535 | * return first dirent whether bh points to leaf or stuffed dinode | ||
| 536 | * | ||
| 537 | * Returns: IS_LEAF, IS_DINODE, or -errno | ||
| 538 | */ | ||
| 539 | |||
| 540 | static int dirent_first(struct gfs2_inode *dip, struct buffer_head *bh, | ||
| 541 | struct gfs2_dirent **dent) | ||
| 542 | { | ||
| 543 | struct gfs2_meta_header *h = (struct gfs2_meta_header *)bh->b_data; | ||
| 544 | |||
| 545 | if (be32_to_cpu(h->mh_type) == GFS2_METATYPE_LF) { | ||
| 546 | if (gfs2_meta_check(GFS2_SB(&dip->i_inode), bh)) | ||
| 547 | return -EIO; | ||
| 548 | *dent = (struct gfs2_dirent *)(bh->b_data + | ||
| 549 | sizeof(struct gfs2_leaf)); | ||
| 550 | return IS_LEAF; | ||
| 551 | } else { | ||
| 552 | if (gfs2_metatype_check(GFS2_SB(&dip->i_inode), bh, GFS2_METATYPE_DI)) | ||
| 553 | return -EIO; | ||
| 554 | *dent = (struct gfs2_dirent *)(bh->b_data + | ||
| 555 | sizeof(struct gfs2_dinode)); | ||
| 556 | return IS_DINODE; | ||
| 557 | } | ||
| 558 | } | ||
| 559 | |||
| 560 | static int dirent_check_reclen(struct gfs2_inode *dip, | 528 | static int dirent_check_reclen(struct gfs2_inode *dip, |
| 561 | const struct gfs2_dirent *d, const void *end_p) | 529 | const struct gfs2_dirent *d, const void *end_p) |
| 562 | { | 530 | { |
| @@ -1006,7 +974,7 @@ static int dir_split_leaf(struct inode *inode, const struct qstr *name) | |||
| 1006 | divider = (start + half_len) << (32 - dip->i_depth); | 974 | divider = (start + half_len) << (32 - dip->i_depth); |
| 1007 | 975 | ||
| 1008 | /* Copy the entries */ | 976 | /* Copy the entries */ |
| 1009 | dirent_first(dip, obh, &dent); | 977 | dent = (struct gfs2_dirent *)(obh->b_data + sizeof(struct gfs2_leaf)); |
| 1010 | 978 | ||
| 1011 | do { | 979 | do { |
| 1012 | next = dent; | 980 | next = dent; |
