[Cluster-devel] [PATCH v3 3/8] gfs2: Iomap cleanups and improvements
Bob Peterson
rpeterso at redhat.com
Fri Apr 6 14:06:03 UTC 2018
Hi,
----- Original Message -----
(snip)
> +static int gfs2_iomap_begin(struct inode *inode, loff_t pos, loff_t length,
> + unsigned flags, struct iomap *iomap)
> +{
> + struct gfs2_inode *ip = GFS2_I(inode);
> + struct metapath mp = { .mp_aheight = 1, };
> + int ret;
> +
> + trace_gfs2_iomap_start(ip, pos, length, flags);
> + if (flags & IOMAP_WRITE) {
> + ret = gfs2_iomap_get(inode, pos, length, flags, iomap, &mp);
> + if (!ret && iomap->type == IOMAP_HOLE)
> + ret = gfs2_iomap_alloc(inode, iomap, flags, &mp);
> + release_metapath(&mp);
> + } else {
> + ret = gfs2_iomap_get(inode, pos, length, flags, iomap, &mp);
> + release_metapath(&mp);
> + }
Why the redundancy? Why not just move gfs2_iomap_get before the if, and
release_metapath after the if? Something like:
+ ret = gfs2_iomap_get(inode, pos, length, flags, iomap, &mp);
+
+ if (!ret && flags & IOMAP_WRITE && iomap->type == IOMAP_HOLE))
+ ret = gfs2_iomap_alloc(inode, iomap, flags, &mp);
+
+ release_metapath(&mp);
(snip)
Bob Peterson
More information about the Cluster-devel
mailing list