Messages in this thread | | | Date | Tue, 24 Nov 2009 17:25:14 -0600 | From | Eric Sandeen <> | Subject | Re: [PATCH XFS] Fix error return for fallocate() on XFS |
| |
Jason Gunthorpe wrote: > 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.
grumblegrumble xfs error signs grumble...
> Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Thanks,
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
> --- > fs/xfs/linux-2.6/xfs_iops.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c > index cd42ef7..1f3b4b8 100644 > --- a/fs/xfs/linux-2.6/xfs_iops.c > +++ b/fs/xfs/linux-2.6/xfs_iops.c > @@ -573,8 +573,8 @@ xfs_vn_fallocate( > bf.l_len = len; > > xfs_ilock(ip, XFS_IOLOCK_EXCL); > - error = xfs_change_file_space(ip, XFS_IOC_RESVSP, &bf, > - 0, XFS_ATTR_NOLOCK); > + 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)) > new_size = offset + len; > @@ -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);
| |