Message ID | 20191030180419.13045-4-hch@lst.de (mailing list archive) |
---|---|
State | Deferred, archived |
Headers | show |
Series | [1/9] xfs: simplify xfs_iomap_eof_align_last_fsb | expand |
On Wed, Oct 30, 2019 at 11:04:13AM -0700, Christoph Hellwig wrote: > And move the code dependent on it to the one caller that cares > instead. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Looks ok, Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> --D > --- > fs/xfs/xfs_iomap.c | 28 +++++++++++++--------------- > 1 file changed, 13 insertions(+), 15 deletions(-) > > diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c > index 02526cffc5a3..c21c4f7a7389 100644 > --- a/fs/xfs/xfs_iomap.c > +++ b/fs/xfs/xfs_iomap.c > @@ -118,8 +118,7 @@ xfs_iomap_end_fsb( > > static xfs_extlen_t > xfs_eof_alignment( > - struct xfs_inode *ip, > - xfs_extlen_t extsize) > + struct xfs_inode *ip) > { > struct xfs_mount *mp = ip->i_mount; > xfs_extlen_t align = 0; > @@ -142,17 +141,6 @@ xfs_eof_alignment( > align = 0; > } > > - /* > - * Always round up the allocation request to an extent boundary > - * (when file on a real-time subvolume or has di_extsize hint). > - */ > - if (extsize) { > - if (align) > - align = roundup_64(align, extsize); > - else > - align = extsize; > - } > - > return align; > } > > @@ -167,12 +155,22 @@ xfs_iomap_eof_align_last_fsb( > { > struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); > xfs_extlen_t extsz = xfs_get_extsz_hint(ip); > - xfs_extlen_t align = xfs_eof_alignment(ip, extsz); > + xfs_extlen_t align = xfs_eof_alignment(ip); > struct xfs_bmbt_irec irec; > struct xfs_iext_cursor icur; > > ASSERT(ifp->if_flags & XFS_IFEXTENTS); > > + /* > + * Always round up the allocation request to the extent hint boundary. > + */ > + if (extsz) { > + if (align) > + align = roundup_64(align, extsz); > + else > + align = extsz; > + } > + > if (align) { > xfs_fileoff_t aligned_end_fsb = roundup_64(end_fsb, align); > > @@ -992,7 +990,7 @@ xfs_buffered_write_iomap_begin( > p_end_fsb = XFS_B_TO_FSBT(mp, end_offset) + > prealloc_blocks; > > - align = xfs_eof_alignment(ip, 0); > + align = xfs_eof_alignment(ip); > if (align) > p_end_fsb = roundup_64(p_end_fsb, align); > > -- > 2.20.1 >
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 02526cffc5a3..c21c4f7a7389 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -118,8 +118,7 @@ xfs_iomap_end_fsb( static xfs_extlen_t xfs_eof_alignment( - struct xfs_inode *ip, - xfs_extlen_t extsize) + struct xfs_inode *ip) { struct xfs_mount *mp = ip->i_mount; xfs_extlen_t align = 0; @@ -142,17 +141,6 @@ xfs_eof_alignment( align = 0; } - /* - * Always round up the allocation request to an extent boundary - * (when file on a real-time subvolume or has di_extsize hint). - */ - if (extsize) { - if (align) - align = roundup_64(align, extsize); - else - align = extsize; - } - return align; } @@ -167,12 +155,22 @@ xfs_iomap_eof_align_last_fsb( { struct xfs_ifork *ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); xfs_extlen_t extsz = xfs_get_extsz_hint(ip); - xfs_extlen_t align = xfs_eof_alignment(ip, extsz); + xfs_extlen_t align = xfs_eof_alignment(ip); struct xfs_bmbt_irec irec; struct xfs_iext_cursor icur; ASSERT(ifp->if_flags & XFS_IFEXTENTS); + /* + * Always round up the allocation request to the extent hint boundary. + */ + if (extsz) { + if (align) + align = roundup_64(align, extsz); + else + align = extsz; + } + if (align) { xfs_fileoff_t aligned_end_fsb = roundup_64(end_fsb, align); @@ -992,7 +990,7 @@ xfs_buffered_write_iomap_begin( p_end_fsb = XFS_B_TO_FSBT(mp, end_offset) + prealloc_blocks; - align = xfs_eof_alignment(ip, 0); + align = xfs_eof_alignment(ip); if (align) p_end_fsb = roundup_64(p_end_fsb, align);
And move the code dependent on it to the one caller that cares instead. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/xfs/xfs_iomap.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-)