Commit e09bee34 authored by Oleg Drokin's avatar Oleg Drokin Committed by Greg Kroah-Hartman

staging/lustre: Properly mark obd_iocontrol argument as __user

Also update all methods and calls everywhere.
Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 44164fc9
...@@ -964,7 +964,7 @@ struct md_enqueue_info { ...@@ -964,7 +964,7 @@ struct md_enqueue_info {
struct obd_ops { struct obd_ops {
struct module *owner; struct module *owner;
int (*iocontrol)(unsigned int cmd, struct obd_export *exp, int len, int (*iocontrol)(unsigned int cmd, struct obd_export *exp, int len,
void *karg, void *uarg); void *karg, void __user *uarg);
int (*get_info)(const struct lu_env *env, struct obd_export *, int (*get_info)(const struct lu_env *env, struct obd_export *,
__u32 keylen, void *key, __u32 *vallen, void *val, __u32 keylen, void *key, __u32 *vallen, void *val,
struct lov_stripe_md *lsm); struct lov_stripe_md *lsm);
......
...@@ -1155,7 +1155,7 @@ static inline int obd_adjust_kms(struct obd_export *exp, ...@@ -1155,7 +1155,7 @@ static inline int obd_adjust_kms(struct obd_export *exp,
} }
static inline int obd_iocontrol(unsigned int cmd, struct obd_export *exp, static inline int obd_iocontrol(unsigned int cmd, struct obd_export *exp,
int len, void *karg, void *uarg) int len, void *karg, void __user *uarg)
{ {
int rc; int rc;
......
...@@ -1724,7 +1724,8 @@ static long ll_dir_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -1724,7 +1724,8 @@ static long ll_dir_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return -EFAULT; return -EFAULT;
return 0; return 0;
case LL_IOC_GET_CONNECT_FLAGS: { case LL_IOC_GET_CONNECT_FLAGS: {
return obd_iocontrol(cmd, sbi->ll_md_exp, 0, NULL, (void *)arg); return obd_iocontrol(cmd, sbi->ll_md_exp, 0, NULL,
(void __user *)arg);
} }
case OBD_IOC_CHANGELOG_SEND: case OBD_IOC_CHANGELOG_SEND:
case OBD_IOC_CHANGELOG_CLEAR: case OBD_IOC_CHANGELOG_CLEAR:
...@@ -1847,7 +1848,8 @@ static long ll_dir_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -1847,7 +1848,8 @@ static long ll_dir_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return rc; return rc;
} }
default: default:
return obd_iocontrol(cmd, sbi->ll_dt_exp, 0, NULL, (void *)arg); return obd_iocontrol(cmd, sbi->ll_dt_exp, 0, NULL,
(void __user *)arg);
} }
} }
......
...@@ -1518,7 +1518,7 @@ static int ll_lov_setstripe(struct inode *inode, struct file *file, ...@@ -1518,7 +1518,7 @@ static int ll_lov_setstripe(struct inode *inode, struct file *file,
ll_layout_refresh(inode, &gen); ll_layout_refresh(inode, &gen);
lsm = ccc_inode_lsm_get(inode); lsm = ccc_inode_lsm_get(inode);
rc = obd_iocontrol(LL_IOC_LOV_GETSTRIPE, ll_i2dtexp(inode), rc = obd_iocontrol(LL_IOC_LOV_GETSTRIPE, ll_i2dtexp(inode),
0, lsm, (void *)arg); 0, lsm, (void __user *)arg);
ccc_inode_lsm_put(inode, lsm); ccc_inode_lsm_put(inode, lsm);
} }
return rc; return rc;
...@@ -1532,7 +1532,7 @@ static int ll_lov_getstripe(struct inode *inode, unsigned long arg) ...@@ -1532,7 +1532,7 @@ static int ll_lov_getstripe(struct inode *inode, unsigned long arg)
lsm = ccc_inode_lsm_get(inode); lsm = ccc_inode_lsm_get(inode);
if (lsm != NULL) if (lsm != NULL)
rc = obd_iocontrol(LL_IOC_LOV_GETSTRIPE, ll_i2dtexp(inode), 0, rc = obd_iocontrol(LL_IOC_LOV_GETSTRIPE, ll_i2dtexp(inode), 0,
lsm, (void *)arg); lsm, (void __user *)arg);
ccc_inode_lsm_put(inode, lsm); ccc_inode_lsm_put(inode, lsm);
return rc; return rc;
} }
...@@ -2497,7 +2497,7 @@ ll_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ...@@ -2497,7 +2497,7 @@ ll_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
return err; return err;
return obd_iocontrol(cmd, ll_i2dtexp(inode), 0, NULL, return obd_iocontrol(cmd, ll_i2dtexp(inode), 0, NULL,
(void *)arg); (void __user *)arg);
} }
} }
} }
......
...@@ -876,7 +876,7 @@ static int lmv_hsm_ct_register(struct lmv_obd *lmv, unsigned int cmd, int len, ...@@ -876,7 +876,7 @@ static int lmv_hsm_ct_register(struct lmv_obd *lmv, unsigned int cmd, int len,
} }
static int lmv_iocontrol(unsigned int cmd, struct obd_export *exp, static int lmv_iocontrol(unsigned int cmd, struct obd_export *exp,
int len, void *karg, void *uarg) int len, void *karg, void __user *uarg)
{ {
struct obd_device *obddev = class_exp2obd(exp); struct obd_device *obddev = class_exp2obd(exp);
struct lmv_obd *lmv = &obddev->u.lmv; struct lmv_obd *lmv = &obddev->u.lmv;
......
...@@ -1385,7 +1385,7 @@ static int lov_statfs(const struct lu_env *env, struct obd_export *exp, ...@@ -1385,7 +1385,7 @@ static int lov_statfs(const struct lu_env *env, struct obd_export *exp,
} }
static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len, static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
void *karg, void *uarg) void *karg, void __user *uarg)
{ {
struct obd_device *obddev = class_exp2obd(exp); struct obd_device *obddev = class_exp2obd(exp);
struct lov_obd *lov = &obddev->u.lov; struct lov_obd *lov = &obddev->u.lov;
......
...@@ -1722,7 +1722,7 @@ static int mdc_ioc_swap_layouts(struct obd_export *exp, ...@@ -1722,7 +1722,7 @@ static int mdc_ioc_swap_layouts(struct obd_export *exp,
} }
static int mdc_iocontrol(unsigned int cmd, struct obd_export *exp, int len, static int mdc_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
void *karg, void *uarg) void *karg, void __user *uarg)
{ {
struct obd_device *obd = exp->exp_obd; struct obd_device *obd = exp->exp_obd;
struct obd_ioctl_data *data = karg; struct obd_ioctl_data *data = karg;
......
...@@ -1619,7 +1619,7 @@ static int echo_client_brw_ioctl(const struct lu_env *env, int rw, ...@@ -1619,7 +1619,7 @@ static int echo_client_brw_ioctl(const struct lu_env *env, int rw,
static int static int
echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len, echo_client_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
void *karg, void *uarg) void *karg, void __user *uarg)
{ {
struct obd_device *obd = exp->exp_obd; struct obd_device *obd = exp->exp_obd;
struct echo_device *ed = obd2echo_dev(obd); struct echo_device *ed = obd2echo_dev(obd);
......
...@@ -2591,7 +2591,7 @@ static int osc_getstripe(struct lov_stripe_md *lsm, struct lov_user_md *lump) ...@@ -2591,7 +2591,7 @@ static int osc_getstripe(struct lov_stripe_md *lsm, struct lov_user_md *lump)
} }
static int osc_iocontrol(unsigned int cmd, struct obd_export *exp, int len, static int osc_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
void *karg, void *uarg) void *karg, void __user *uarg)
{ {
struct obd_device *obd = exp->exp_obd; struct obd_device *obd = exp->exp_obd;
struct obd_ioctl_data *data = karg; struct obd_ioctl_data *data = karg;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment