forked from Minki/linux
don't reallocate sxp variable passed into xfs_swapext
fixes kernel.org bugzilla 12538, xfs_fsr fails on 2.6.29-rc kernels
Regression caused by 743bb4650d
This was an embarrasing mistake, reallocating the sxp pointer passed
in from the main ioctl switch.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net
Reported-by: Paul Martin <pm@debian.org>
Tested-by: Paul Martin <pm@debian.org>
Reviewed-by: Felix Blyakher <felixb@sgi.com>
Signed-off-by: Felix Blyakher <felixb@sgi.com>
This commit is contained in:
parent
5e1065726e
commit
ac12b4e25e
@ -55,17 +55,11 @@ xfs_swapext(
|
|||||||
struct file *file, *target_file;
|
struct file *file, *target_file;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
|
|
||||||
sxp = kmem_alloc(sizeof(xfs_swapext_t), KM_MAYFAIL);
|
|
||||||
if (!sxp) {
|
|
||||||
error = XFS_ERROR(ENOMEM);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Pull information for the target fd */
|
/* Pull information for the target fd */
|
||||||
file = fget((int)sxp->sx_fdtarget);
|
file = fget((int)sxp->sx_fdtarget);
|
||||||
if (!file) {
|
if (!file) {
|
||||||
error = XFS_ERROR(EINVAL);
|
error = XFS_ERROR(EINVAL);
|
||||||
goto out_free_sxp;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(file->f_mode & FMODE_WRITE) || (file->f_flags & O_APPEND)) {
|
if (!(file->f_mode & FMODE_WRITE) || (file->f_flags & O_APPEND)) {
|
||||||
@ -109,8 +103,6 @@ xfs_swapext(
|
|||||||
fput(target_file);
|
fput(target_file);
|
||||||
out_put_file:
|
out_put_file:
|
||||||
fput(file);
|
fput(file);
|
||||||
out_free_sxp:
|
|
||||||
kmem_free(sxp);
|
|
||||||
out:
|
out:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user