struct dentry *dentry = file_dentry(file);
struct inode *inode = file_inode(file);
struct ll_sb_info *sbi = ll_i2sbi(inode);
- struct obd_ioctl_data *data;
+ struct obd_ioctl_data *data = NULL;
int rc = 0;
ENTRY;
return 0;
}
case IOC_MDC_LOOKUP: {
- int namelen, len = 0;
- char *buf = NULL;
+ int namelen, len = 0;
char *filename;
- rc = obd_ioctl_getdata(&buf, &len, (void __user *)arg);
+ rc = obd_ioctl_getdata(&data, &len, (void __user *)arg);
if (rc != 0)
RETURN(rc);
- data = (void *)buf;
filename = data->ioc_inlbuf1;
namelen = strlen(filename);
GOTO(out_free, rc);
}
out_free:
- OBD_FREE_LARGE(buf, len);
- return rc;
- }
+ OBD_FREE_LARGE(data, len);
+ return rc;
+ }
case LL_IOC_LMV_SETSTRIPE: {
struct lmv_user_md *lum;
- char *buf = NULL;
char *filename;
int namelen = 0;
int lumlen = 0;
int len;
int rc;
- rc = obd_ioctl_getdata(&buf, &len, (void __user *)arg);
+ rc = obd_ioctl_getdata(&data, &len, (void __user *)arg);
if (rc)
RETURN(rc);
- data = (void *)buf;
if (data->ioc_inlbuf1 == NULL || data->ioc_inlbuf2 == NULL ||
data->ioc_inllen1 == 0 || data->ioc_inllen2 == 0)
GOTO(lmv_out_free, rc = -EINVAL);
mode = data->ioc_type;
rc = ll_dir_setdirstripe(dentry, lum, lumlen, filename, mode);
lmv_out_free:
- OBD_FREE_LARGE(buf, len);
+ OBD_FREE_LARGE(data, len);
RETURN(rc);
}
}
case LL_IOC_MIGRATE: {
struct lmv_user_md *lum;
- char *buf = NULL;
int len;
char *filename;
int namelen = 0;
int rc;
- rc = obd_ioctl_getdata(&buf, &len, (void __user *)arg);
+ rc = obd_ioctl_getdata(&data, &len, (void __user *)arg);
if (rc)
RETURN(rc);
- data = (struct obd_ioctl_data *)buf;
if (data->ioc_inlbuf1 == NULL || data->ioc_inlbuf2 == NULL ||
data->ioc_inllen1 == 0 || data->ioc_inllen2 == 0)
GOTO(migrate_free, rc = -EINVAL);
rc = ll_migrate(inode, file, lum, filename);
migrate_free:
- OBD_FREE_LARGE(buf, len);
+ OBD_FREE_LARGE(data, len);
RETURN(rc);
}