mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-20 11:11:24 +00:00
ext2fs: rearrange ext4_bmapext().
While here assign error a bit later. Reviewed by: Damjan Jovanovich Obtained from: NetBSD
This commit is contained in:
parent
96e9f46789
commit
2e621997eb
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=301560
@ -97,7 +97,7 @@ ext4_bmapext(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb)
|
||||
struct ext4_extent *ep;
|
||||
struct ext4_extent_path path = { .ep_bp = NULL };
|
||||
daddr_t lbn;
|
||||
int error = 0;
|
||||
int error;
|
||||
|
||||
ip = VTOI(vp);
|
||||
fs = ip->i_e2fs;
|
||||
@ -105,9 +105,9 @@ ext4_bmapext(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb)
|
||||
|
||||
if (runp != NULL)
|
||||
*runp = 0;
|
||||
|
||||
if (runb != NULL)
|
||||
*runb = 0;
|
||||
error = 0;
|
||||
|
||||
ext4_ext_find_extent(fs, ip, lbn, &path);
|
||||
if (path.ep_is_sparse) {
|
||||
@ -118,27 +118,26 @@ ext4_bmapext(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb)
|
||||
if (runb != NULL)
|
||||
*runb = lbn - path.ep_sparse_ext.e_blk;
|
||||
} else {
|
||||
ep = path.ep_ext;
|
||||
if (ep == NULL)
|
||||
if ( path.ep_ext == NULL) {
|
||||
error = EIO;
|
||||
else {
|
||||
*bnp = fsbtodb(fs, lbn - ep->e_blk +
|
||||
(ep->e_start_lo | (daddr_t)ep->e_start_hi << 32));
|
||||
|
||||
if (*bnp == 0)
|
||||
*bnp = -1;
|
||||
|
||||
if (runp != NULL)
|
||||
*runp = ep->e_len - (lbn - ep->e_blk) - 1;
|
||||
if (runb != NULL)
|
||||
*runb = lbn - ep->e_blk;
|
||||
goto out;
|
||||
}
|
||||
ep = path.ep_ext;
|
||||
*bnp = fsbtodb(fs, lbn - ep->e_blk +
|
||||
(ep->e_start_lo | (daddr_t)ep->e_start_hi << 32));
|
||||
|
||||
if (*bnp == 0)
|
||||
*bnp = -1;
|
||||
|
||||
if (runp != NULL)
|
||||
*runp = ep->e_len - (lbn - ep->e_blk) - 1;
|
||||
if (runb != NULL)
|
||||
*runb = lbn - ep->e_blk;
|
||||
}
|
||||
|
||||
if (path.ep_bp != NULL) {
|
||||
out:
|
||||
if (path.ep_bp != NULL)
|
||||
brelse(path.ep_bp);
|
||||
path.ep_bp = NULL;
|
||||
}
|
||||
|
||||
return (error);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user