svn commit: r301560 - head/sys/fs/ext2fs
Pedro F. Giffuni
pfg at FreeBSD.org
Tue Jun 7 18:23:23 UTC 2016
Author: pfg
Date: Tue Jun 7 18:23:22 2016
New Revision: 301560
URL: https://svnweb.freebsd.org/changeset/base/301560
Log:
ext2fs: rearrange ext4_bmapext().
While here assign error a bit later.
Reviewed by: Damjan Jovanovich
Obtained from: NetBSD
Modified:
head/sys/fs/ext2fs/ext2_bmap.c
Modified: head/sys/fs/ext2fs/ext2_bmap.c
==============================================================================
--- head/sys/fs/ext2fs/ext2_bmap.c Tue Jun 7 17:08:34 2016 (r301559)
+++ head/sys/fs/ext2fs/ext2_bmap.c Tue Jun 7 18:23:22 2016 (r301560)
@@ -97,7 +97,7 @@ ext4_bmapext(struct vnode *vp, int32_t b
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 b
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 b
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);
}
More information about the svn-src-all
mailing list