xfs: factor our a helper to calculate the EOF alignment
And drop the pointless mp argument to xfs_iomap_eof_align_last_fsb, while we're at it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
parent
e9c4973638
commit
f8e3a82575
|
@ -70,15 +70,13 @@ xfs_bmbt_to_iomap(
|
|||
iomap->bdev = xfs_find_bdev_for_inode(VFS_I(ip));
|
||||
}
|
||||
|
||||
STATIC int
|
||||
xfs_iomap_eof_align_last_fsb(
|
||||
xfs_mount_t *mp,
|
||||
xfs_inode_t *ip,
|
||||
xfs_extlen_t extsize,
|
||||
xfs_fileoff_t *last_fsb)
|
||||
static xfs_extlen_t
|
||||
xfs_eof_alignment(
|
||||
struct xfs_inode *ip,
|
||||
xfs_extlen_t extsize)
|
||||
{
|
||||
xfs_extlen_t align = 0;
|
||||
int eof, error;
|
||||
struct xfs_mount *mp = ip->i_mount;
|
||||
xfs_extlen_t align = 0;
|
||||
|
||||
if (!XFS_IS_REALTIME_INODE(ip)) {
|
||||
/*
|
||||
|
@ -109,8 +107,21 @@ xfs_iomap_eof_align_last_fsb(
|
|||
align = extsize;
|
||||
}
|
||||
|
||||
return align;
|
||||
}
|
||||
|
||||
STATIC int
|
||||
xfs_iomap_eof_align_last_fsb(
|
||||
struct xfs_inode *ip,
|
||||
xfs_extlen_t extsize,
|
||||
xfs_fileoff_t *last_fsb)
|
||||
{
|
||||
xfs_extlen_t align = xfs_eof_alignment(ip, extsize);
|
||||
|
||||
if (align) {
|
||||
xfs_fileoff_t new_last_fsb = roundup_64(*last_fsb, align);
|
||||
int eof, error;
|
||||
|
||||
error = xfs_bmap_eof(ip, new_last_fsb, XFS_DATA_FORK, &eof);
|
||||
if (error)
|
||||
return error;
|
||||
|
@ -180,7 +191,7 @@ xfs_iomap_write_direct(
|
|||
*/
|
||||
ASSERT(XFS_IFORK_PTR(ip, XFS_DATA_FORK)->if_flags &
|
||||
XFS_IFEXTENTS);
|
||||
error = xfs_iomap_eof_align_last_fsb(mp, ip, extsz, &last_fsb);
|
||||
error = xfs_iomap_eof_align_last_fsb(ip, extsz, &last_fsb);
|
||||
if (error)
|
||||
goto out_unlock;
|
||||
} else {
|
||||
|
@ -638,7 +649,7 @@ xfs_iomap_write_delay(
|
|||
}
|
||||
|
||||
if (prealloc || extsz) {
|
||||
error = xfs_iomap_eof_align_last_fsb(mp, ip, extsz, &last_fsb);
|
||||
error = xfs_iomap_eof_align_last_fsb(ip, extsz, &last_fsb);
|
||||
if (error)
|
||||
return error;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue