diff options
Diffstat (limited to 'fs/xfs/linux-2.6')
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_discard.c | 2 | ||||
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_ioctl.c | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_discard.c b/fs/xfs/linux-2.6/xfs_discard.c index 05201ae719e5..d61611c88012 100644 --- a/fs/xfs/linux-2.6/xfs_discard.c +++ b/fs/xfs/linux-2.6/xfs_discard.c | |||
| @@ -152,6 +152,8 @@ xfs_ioc_trim( | |||
| 152 | 152 | ||
| 153 | if (!capable(CAP_SYS_ADMIN)) | 153 | if (!capable(CAP_SYS_ADMIN)) |
| 154 | return -XFS_ERROR(EPERM); | 154 | return -XFS_ERROR(EPERM); |
| 155 | if (!blk_queue_discard(q)) | ||
| 156 | return -XFS_ERROR(EOPNOTSUPP); | ||
| 155 | if (copy_from_user(&range, urange, sizeof(range))) | 157 | if (copy_from_user(&range, urange, sizeof(range))) |
| 156 | return -XFS_ERROR(EFAULT); | 158 | return -XFS_ERROR(EFAULT); |
| 157 | 159 | ||
diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c index f5e2a19e0f8e..0ca0e3c024d7 100644 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ b/fs/xfs/linux-2.6/xfs_ioctl.c | |||
| @@ -695,14 +695,19 @@ xfs_ioc_fsgeometry_v1( | |||
| 695 | xfs_mount_t *mp, | 695 | xfs_mount_t *mp, |
| 696 | void __user *arg) | 696 | void __user *arg) |
| 697 | { | 697 | { |
| 698 | xfs_fsop_geom_v1_t fsgeo; | 698 | xfs_fsop_geom_t fsgeo; |
| 699 | int error; | 699 | int error; |
| 700 | 700 | ||
| 701 | error = xfs_fs_geometry(mp, (xfs_fsop_geom_t *)&fsgeo, 3); | 701 | error = xfs_fs_geometry(mp, &fsgeo, 3); |
| 702 | if (error) | 702 | if (error) |
| 703 | return -error; | 703 | return -error; |
| 704 | 704 | ||
| 705 | if (copy_to_user(arg, &fsgeo, sizeof(fsgeo))) | 705 | /* |
| 706 | * Caller should have passed an argument of type | ||
| 707 | * xfs_fsop_geom_v1_t. This is a proper subset of the | ||
| 708 | * xfs_fsop_geom_t that xfs_fs_geometry() fills in. | ||
| 709 | */ | ||
| 710 | if (copy_to_user(arg, &fsgeo, sizeof(xfs_fsop_geom_v1_t))) | ||
| 706 | return -XFS_ERROR(EFAULT); | 711 | return -XFS_ERROR(EFAULT); |
| 707 | return 0; | 712 | return 0; |
| 708 | } | 713 | } |
