提交 666a2c53 编写于 作者: S Steven Whitehouse

[GFS2] Remove unused code from various files

Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
上级 c73530a1
......@@ -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
......@@ -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;
}
......@@ -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__ */
......@@ -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);
}
......@@ -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__ */
......@@ -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;
}
......@@ -74,8 +74,6 @@ int gfs2_ea_remove(struct gfs2_inode *ip, struct gfs2_ea_request *er);
int gfs2_ea_dealloc(struct gfs2_inode *ip);
int gfs2_get_eattr_meta(struct gfs2_inode *ip, struct gfs2_user_buffer *ub);
/* Exported to acl.c */
int gfs2_ea_find(struct gfs2_inode *ip,
......
......@@ -221,36 +221,6 @@ int gfs2_io_error_bh_i(struct gfs2_sbd *sdp, struct buffer_head *bh,
return rv;
}
/**
* gfs2_add_bh_to_ub - copy a buffer up to user space
* @ub: the structure representing where to copy
* @bh: the buffer
*
* Returns: errno
*/
int gfs2_add_bh_to_ub(struct gfs2_user_buffer *ub, struct buffer_head *bh)
{
uint64_t blkno = bh->b_blocknr;
if (ub->ub_count + sizeof(uint64_t) + bh->b_size > ub->ub_size)
return -ENOMEM;
if (copy_to_user(ub->ub_data + ub->ub_count,
&blkno,
sizeof(uint64_t)))
return -EFAULT;
ub->ub_count += sizeof(uint64_t);
if (copy_to_user(ub->ub_data + ub->ub_count,
bh->b_data,
bh->b_size))
return -EFAULT;
ub->ub_count += bh->b_size;
return 0;
}
void gfs2_icbit_munge(struct gfs2_sbd *sdp, unsigned char **bitmap,
unsigned int bit, int new_value)
{
......
......@@ -152,14 +152,6 @@ extern kmem_cache_t *gfs2_glock_cachep;
extern kmem_cache_t *gfs2_inode_cachep;
extern kmem_cache_t *gfs2_bufdata_cachep;
struct gfs2_user_buffer {
char __user *ub_data;
unsigned int ub_size;
unsigned int ub_count;
};
int gfs2_add_bh_to_ub(struct gfs2_user_buffer *ub, struct buffer_head *bh);
static inline unsigned int gfs2_tune_get_i(struct gfs2_tune *gt,
unsigned int *p)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册