diff options
Diffstat (limited to 'fs/gfs2/eattr.c')
-rw-r--r-- | fs/gfs2/eattr.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/fs/gfs2/eattr.c b/fs/gfs2/eattr.c index 63a5cf1e2472..dec55dcb9dbc 100644 --- a/fs/gfs2/eattr.c +++ b/fs/gfs2/eattr.c | |||
@@ -1561,60 +1561,3 @@ int gfs2_ea_dealloc(struct gfs2_inode *ip) | |||
1561 | return error; | 1561 | return error; |
1562 | } | 1562 | } |
1563 | 1563 | ||
1564 | /** | ||
1565 | * gfs2_get_eattr_meta - return all the eattr blocks of a file | ||
1566 | * @dip: the directory | ||
1567 | * @ub: the structure representing the user buffer to copy to | ||
1568 | * | ||
1569 | * Returns: errno | ||
1570 | */ | ||
1571 | |||
1572 | int gfs2_get_eattr_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub) | ||
1573 | { | ||
1574 | struct buffer_head *bh; | ||
1575 | int error; | ||
1576 | |||
1577 | error = gfs2_meta_read(ip->i_gl, ip->i_di.di_eattr, | ||
1578 | DIO_START | DIO_WAIT, &bh); | ||
1579 | if (error) | ||
1580 | return error; | ||
1581 | |||
1582 | gfs2_add_bh_to_ub(ub, bh); | ||
1583 | |||
1584 | if (ip->i_di.di_flags & GFS2_DIF_EA_INDIRECT) { | ||
1585 | struct buffer_head *eabh; | ||
1586 | uint64_t *eablk, *end; | ||
1587 | |||
1588 | if (gfs2_metatype_check(ip->i_sbd, bh, GFS2_METATYPE_IN)) { | ||
1589 | error = -EIO; | ||
1590 | goto out; | ||
1591 | } | ||
1592 | |||
1593 | eablk = (uint64_t *)(bh->b_data + | ||
1594 | sizeof(struct gfs2_meta_header)); | ||
1595 | end = eablk + ip->i_sbd->sd_inptrs; | ||
1596 | |||
1597 | for (; eablk < end; eablk++) { | ||
1598 | uint64_t bn; | ||
1599 | |||
1600 | if (!*eablk) | ||
1601 | break; | ||
1602 | bn = be64_to_cpu(*eablk); | ||
1603 | |||
1604 | error = gfs2_meta_read(ip->i_gl, bn, | ||
1605 | DIO_START | DIO_WAIT, &eabh); | ||
1606 | if (error) | ||
1607 | break; | ||
1608 | gfs2_add_bh_to_ub(ub, eabh); | ||
1609 | brelse(eabh); | ||
1610 | if (error) | ||
1611 | break; | ||
1612 | } | ||
1613 | } | ||
1614 | |||
1615 | out: | ||
1616 | brelse(bh); | ||
1617 | |||
1618 | return error; | ||
1619 | } | ||
1620 | |||