Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44a743f6 authored by Jason Gunthorpe's avatar Jason Gunthorpe Committed by Alex Elder
Browse files

xfs: Fix error return for fallocate() on XFS



Noticed that through glibc fallocate would return 28 rather than -1
and errno = 28 for ENOSPC. The xfs routines uses XFS_ERROR format
positive return error codes while the syscalls use negative return
codes.  Fixup the two cases in xfs_vn_fallocate syscall to convert to
negative.

Signed-off-by: default avatarJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Reviewed-by: default avatarEric Sandeen <sandeen@sandeen.net>
Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
parent 30ac0683
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -573,7 +573,7 @@ xfs_vn_fallocate(
	bf.l_len = len;

	xfs_ilock(ip, XFS_IOLOCK_EXCL);
	error = xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf,
	error = -xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf,
				       0, XFS_ATTR_NOLOCK);
	if (!error && !(mode & FALLOC_FL_KEEP_SIZE) &&
	    offset + len > i_size_read(inode))
@@ -585,7 +585,7 @@ xfs_vn_fallocate(

		iattr.ia_valid = ATTR_SIZE;
		iattr.ia_size = new_size;
		error = xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK);
		error = -xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK);
	}

	xfs_iunlock(ip, XFS_IOLOCK_EXCL);