Loading fs/gfs2/bmap.c +1 −80 Original line number Diff line number Diff line Loading @@ -999,7 +999,7 @@ static int do_shrink(struct gfs2_inode *ip, uint64_t size, } /** * gfs2_truncatei - make a file a give size * gfs2_truncatei - make a file a given size * @ip: the inode * @size: the size to make the file * @truncator: function to truncate the last partial block Loading Loading @@ -1125,82 +1125,3 @@ int gfs2_write_alloc_required(struct gfs2_inode *ip, uint64_t offset, return 0; } /** * do_gfm - Copy out the dinode/indirect blocks of a file * @ip: the file * @dibh: the dinode buffer * @bh: the indirect buffer we're looking at * @top: the first pointer in the block * @bottom: one more than the last pointer in the block * @height: the height the block is at * @data: a pointer to a struct gfs2_user_buffer structure * * If this is a journaled file, copy out the data too. * * Returns: errno */ static int do_gfm(struct gfs2_inode *ip, struct buffer_head *dibh, struct buffer_head *bh, uint64_t *top, uint64_t *bottom, unsigned int height, void *data) { struct gfs2_user_buffer *ub = (struct gfs2_user_buffer *)data; int error; error = gfs2_add_bh_to_ub(ub, bh); if (error) return error; if (!S_ISDIR(ip->i_di.di_mode) || height + 1 != ip->i_di.di_height) return 0; for (; top < bottom; top++) if (*top) { struct buffer_head *data_bh; error = gfs2_meta_read(ip->i_gl, be64_to_cpu(*top), DIO_START | DIO_WAIT, &data_bh); if (error) return error; error = gfs2_add_bh_to_ub(ub, data_bh); brelse(data_bh); if (error) return error; } return 0; } /** * gfs2_get_file_meta - return all the metadata for a file * @ip: the file * @ub: the structure representing the meta * * Returns: errno */ int gfs2_get_file_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub) { int error; if (gfs2_is_stuffed(ip)) { struct buffer_head *dibh; error = gfs2_meta_inode_buffer(ip, &dibh); if (!error) { error = gfs2_add_bh_to_ub(ub, dibh); brelse(dibh); } } else { struct metapath mp; find_metapath(ip, 0, &mp); error = recursive_scan(ip, NULL, &mp, 0, 0, 1, do_gfm, ub); } return error; } fs/gfs2/bmap.h +0 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,4 @@ void gfs2_write_calc_reserv(struct gfs2_inode *ip, unsigned int len, int gfs2_write_alloc_required(struct gfs2_inode *ip, uint64_t offset, unsigned int len, int *alloc_required); int gfs2_get_file_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub); #endif /* __BMAP_DOT_H__ */ fs/gfs2/dir.c +0 −51 Original line number Diff line number Diff line Loading @@ -2104,54 +2104,3 @@ int gfs2_diradd_alloc_required(struct gfs2_inode *dip, struct qstr *filename, return error; } /** * do_gdm - copy out one leaf (or list of leaves) * @dip: the directory * @index: the hash table offset in the directory * @len: the number of pointers to this leaf * @leaf_no: the leaf number * @data: a pointer to a struct gfs2_user_buffer structure * * Returns: errno */ static int do_gdm(struct gfs2_inode *dip, uint32_t index, uint32_t len, uint64_t leaf_no, void *data) { struct gfs2_user_buffer *ub = (struct gfs2_user_buffer *)data; struct gfs2_leaf leaf; struct buffer_head *bh; uint64_t blk; int error = 0; for (blk = leaf_no; blk; blk = leaf.lf_next) { error = get_leaf(dip, blk, &bh); if (error) break; gfs2_leaf_in(&leaf, bh->b_data); error = gfs2_add_bh_to_ub(ub, bh); brelse(bh); if (error) break; } return error; } /** * gfs2_get_dir_meta - return all the leaf blocks of a directory * @dip: the directory * @ub: the structure representing the meta * * Returns: errno */ int gfs2_get_dir_meta(struct gfs2_inode *dip, struct gfs2_user_buffer *ub) { return foreach_leaf(dip, do_gdm, ub); } fs/gfs2/dir.h +0 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,4 @@ int gfs2_dir_exhash_dealloc(struct gfs2_inode *dip); int gfs2_diradd_alloc_required(struct gfs2_inode *dip, struct qstr *filename, int *alloc_required); int gfs2_get_dir_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub); #endif /* __DIR_DOT_H__ */ fs/gfs2/eattr.c +0 −57 Original line number Diff line number Diff line Loading @@ -1561,60 +1561,3 @@ int gfs2_ea_dealloc(struct gfs2_inode *ip) return error; } /** * gfs2_get_eattr_meta - return all the eattr blocks of a file * @dip: the directory * @ub: the structure representing the user buffer to copy to * * Returns: errno */ int gfs2_get_eattr_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub) { struct buffer_head *bh; int error; error = gfs2_meta_read(ip->i_gl, ip->i_di.di_eattr, DIO_START | DIO_WAIT, &bh); if (error) return error; gfs2_add_bh_to_ub(ub, bh); if (ip->i_di.di_flags & GFS2_DIF_EA_INDIRECT) { struct buffer_head *eabh; uint64_t *eablk, *end; if (gfs2_metatype_check(ip->i_sbd, bh, GFS2_METATYPE_IN)) { error = -EIO; goto out; } eablk = (uint64_t *)(bh->b_data + sizeof(struct gfs2_meta_header)); end = eablk + ip->i_sbd->sd_inptrs; for (; eablk < end; eablk++) { uint64_t bn; if (!*eablk) break; bn = be64_to_cpu(*eablk); error = gfs2_meta_read(ip->i_gl, bn, DIO_START | DIO_WAIT, &eabh); if (error) break; gfs2_add_bh_to_ub(ub, eabh); brelse(eabh); if (error) break; } } out: brelse(bh); return error; } Loading
fs/gfs2/bmap.c +1 −80 Original line number Diff line number Diff line Loading @@ -999,7 +999,7 @@ static int do_shrink(struct gfs2_inode *ip, uint64_t size, } /** * gfs2_truncatei - make a file a give size * gfs2_truncatei - make a file a given size * @ip: the inode * @size: the size to make the file * @truncator: function to truncate the last partial block Loading Loading @@ -1125,82 +1125,3 @@ int gfs2_write_alloc_required(struct gfs2_inode *ip, uint64_t offset, return 0; } /** * do_gfm - Copy out the dinode/indirect blocks of a file * @ip: the file * @dibh: the dinode buffer * @bh: the indirect buffer we're looking at * @top: the first pointer in the block * @bottom: one more than the last pointer in the block * @height: the height the block is at * @data: a pointer to a struct gfs2_user_buffer structure * * If this is a journaled file, copy out the data too. * * Returns: errno */ static int do_gfm(struct gfs2_inode *ip, struct buffer_head *dibh, struct buffer_head *bh, uint64_t *top, uint64_t *bottom, unsigned int height, void *data) { struct gfs2_user_buffer *ub = (struct gfs2_user_buffer *)data; int error; error = gfs2_add_bh_to_ub(ub, bh); if (error) return error; if (!S_ISDIR(ip->i_di.di_mode) || height + 1 != ip->i_di.di_height) return 0; for (; top < bottom; top++) if (*top) { struct buffer_head *data_bh; error = gfs2_meta_read(ip->i_gl, be64_to_cpu(*top), DIO_START | DIO_WAIT, &data_bh); if (error) return error; error = gfs2_add_bh_to_ub(ub, data_bh); brelse(data_bh); if (error) return error; } return 0; } /** * gfs2_get_file_meta - return all the metadata for a file * @ip: the file * @ub: the structure representing the meta * * Returns: errno */ int gfs2_get_file_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub) { int error; if (gfs2_is_stuffed(ip)) { struct buffer_head *dibh; error = gfs2_meta_inode_buffer(ip, &dibh); if (!error) { error = gfs2_add_bh_to_ub(ub, dibh); brelse(dibh); } } else { struct metapath mp; find_metapath(ip, 0, &mp); error = recursive_scan(ip, NULL, &mp, 0, 0, 1, do_gfm, ub); } return error; }
fs/gfs2/bmap.h +0 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,4 @@ void gfs2_write_calc_reserv(struct gfs2_inode *ip, unsigned int len, int gfs2_write_alloc_required(struct gfs2_inode *ip, uint64_t offset, unsigned int len, int *alloc_required); int gfs2_get_file_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub); #endif /* __BMAP_DOT_H__ */
fs/gfs2/dir.c +0 −51 Original line number Diff line number Diff line Loading @@ -2104,54 +2104,3 @@ int gfs2_diradd_alloc_required(struct gfs2_inode *dip, struct qstr *filename, return error; } /** * do_gdm - copy out one leaf (or list of leaves) * @dip: the directory * @index: the hash table offset in the directory * @len: the number of pointers to this leaf * @leaf_no: the leaf number * @data: a pointer to a struct gfs2_user_buffer structure * * Returns: errno */ static int do_gdm(struct gfs2_inode *dip, uint32_t index, uint32_t len, uint64_t leaf_no, void *data) { struct gfs2_user_buffer *ub = (struct gfs2_user_buffer *)data; struct gfs2_leaf leaf; struct buffer_head *bh; uint64_t blk; int error = 0; for (blk = leaf_no; blk; blk = leaf.lf_next) { error = get_leaf(dip, blk, &bh); if (error) break; gfs2_leaf_in(&leaf, bh->b_data); error = gfs2_add_bh_to_ub(ub, bh); brelse(bh); if (error) break; } return error; } /** * gfs2_get_dir_meta - return all the leaf blocks of a directory * @dip: the directory * @ub: the structure representing the meta * * Returns: errno */ int gfs2_get_dir_meta(struct gfs2_inode *dip, struct gfs2_user_buffer *ub) { return foreach_leaf(dip, do_gdm, ub); }
fs/gfs2/dir.h +0 −2 Original line number Diff line number Diff line Loading @@ -46,6 +46,4 @@ int gfs2_dir_exhash_dealloc(struct gfs2_inode *dip); int gfs2_diradd_alloc_required(struct gfs2_inode *dip, struct qstr *filename, int *alloc_required); int gfs2_get_dir_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub); #endif /* __DIR_DOT_H__ */
fs/gfs2/eattr.c +0 −57 Original line number Diff line number Diff line Loading @@ -1561,60 +1561,3 @@ int gfs2_ea_dealloc(struct gfs2_inode *ip) return error; } /** * gfs2_get_eattr_meta - return all the eattr blocks of a file * @dip: the directory * @ub: the structure representing the user buffer to copy to * * Returns: errno */ int gfs2_get_eattr_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub) { struct buffer_head *bh; int error; error = gfs2_meta_read(ip->i_gl, ip->i_di.di_eattr, DIO_START | DIO_WAIT, &bh); if (error) return error; gfs2_add_bh_to_ub(ub, bh); if (ip->i_di.di_flags & GFS2_DIF_EA_INDIRECT) { struct buffer_head *eabh; uint64_t *eablk, *end; if (gfs2_metatype_check(ip->i_sbd, bh, GFS2_METATYPE_IN)) { error = -EIO; goto out; } eablk = (uint64_t *)(bh->b_data + sizeof(struct gfs2_meta_header)); end = eablk + ip->i_sbd->sd_inptrs; for (; eablk < end; eablk++) { uint64_t bn; if (!*eablk) break; bn = be64_to_cpu(*eablk); error = gfs2_meta_read(ip->i_gl, bn, DIO_START | DIO_WAIT, &eabh); if (error) break; gfs2_add_bh_to_ub(ub, eabh); brelse(eabh); if (error) break; } } out: brelse(bh); return error; }