Skip to content

Commit

Permalink
gfs2: Replace gfs2_lblk_to_dblk with gfs2_get_extent
Browse files Browse the repository at this point in the history
We don't need two very similar functions for mapping logical blocks to physical
blocks.

Signed-off-by: Andreas Gruenbacher <[email protected]>
  • Loading branch information
Andreas Gruenbacher committed Apr 3, 2021
1 parent 9153dac commit 152f58c
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 26 deletions.
24 changes: 0 additions & 24 deletions fs/gfs2/bmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -961,30 +961,6 @@ static int __gfs2_iomap_get(struct inode *inode, loff_t pos, loff_t length,
goto out;
}

/**
* gfs2_lblk_to_dblk - convert logical block to disk block
* @inode: the inode of the file we're mapping
* @lblock: the block relative to the start of the file
* @dblock: the returned dblock, if no error
*
* This function maps a single block from a file logical block (relative to
* the start of the file) to a file system absolute block using iomap.
*
* Returns: the absolute file system block, or an error
*/
int gfs2_lblk_to_dblk(struct inode *inode, u32 lblock, u64 *dblock)
{
struct iomap iomap = { };
loff_t pos = (loff_t)lblock << inode->i_blkbits;
int ret;

ret = gfs2_iomap_get(inode, pos, i_blocksize(inode), &iomap);
if (ret == 0)
*dblock = iomap.addr >> inode->i_blkbits;

return ret;
}

static int gfs2_write_lock(struct inode *inode)
{
struct gfs2_inode *ip = GFS2_I(inode);
Expand Down
1 change: 0 additions & 1 deletion fs/gfs2/bmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,5 @@ extern int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset,
extern int gfs2_map_journal_extents(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd);
extern void gfs2_free_journal_extents(struct gfs2_jdesc *jd);
extern int __gfs2_punch_hole(struct file *file, loff_t offset, loff_t length);
extern int gfs2_lblk_to_dblk(struct inode *inode, u32 lblock, u64 *dblock);

#endif /* __BMAP_DOT_H__ */
6 changes: 5 additions & 1 deletion fs/gfs2/log.c
Original file line number Diff line number Diff line change
Expand Up @@ -859,7 +859,11 @@ void gfs2_write_log_header(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd,
if (!list_empty(&jd->extent_list))
dblock = gfs2_log_bmap(jd, lblock);
else {
int ret = gfs2_lblk_to_dblk(jd->jd_inode, lblock, &dblock);
unsigned int extlen;
int ret;

extlen = 1;
ret = gfs2_get_extent(jd->jd_inode, lblock, &dblock, &extlen);
if (gfs2_assert_withdraw(sdp, ret == 0))
return;
}
Expand Down

0 comments on commit 152f58c

Please sign in to comment.