mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 14:54:49 +08:00
staging/lustre: Get rid of an ugly statfs hack in lov_iocontrol
For some crazy reason ll_obd_statfs decided to decode async flag passed from userspace and then pass it via a userspace pointer argument to lov_iocontrol. This patch moves flags decoding to lov_iocontrol where it belongs. Signed-off-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4eb53dfd23
commit
44164fc992
@ -2026,7 +2026,6 @@ int ll_obd_statfs(struct inode *inode, void *arg)
|
||||
char *buf = NULL;
|
||||
struct obd_ioctl_data *data = NULL;
|
||||
__u32 type;
|
||||
__u32 flags;
|
||||
int len = 0, rc;
|
||||
|
||||
if (!inode) {
|
||||
@ -2069,8 +2068,7 @@ int ll_obd_statfs(struct inode *inode, void *arg)
|
||||
goto out_statfs;
|
||||
}
|
||||
|
||||
flags = (type & LL_STATFS_NODELAY) ? OBD_STATFS_NODELAY : 0;
|
||||
rc = obd_iocontrol(IOC_OBD_STATFS, exp, len, buf, &flags);
|
||||
rc = obd_iocontrol(IOC_OBD_STATFS, exp, len, buf, NULL);
|
||||
if (rc)
|
||||
goto out_statfs;
|
||||
out_statfs:
|
||||
|
@ -1420,7 +1420,9 @@ static int lov_iocontrol(unsigned int cmd, struct obd_export *exp, int len,
|
||||
(int) sizeof(struct obd_uuid))))
|
||||
return -EFAULT;
|
||||
|
||||
flags = uarg ? *(__u32 *)uarg : 0;
|
||||
memcpy(&flags, data->ioc_inlbuf1, sizeof(__u32));
|
||||
flags = flags & LL_STATFS_NODELAY ? OBD_STATFS_NODELAY : 0;
|
||||
|
||||
/* got statfs data */
|
||||
rc = obd_statfs(NULL, lov->lov_tgts[index]->ltd_exp, &stat_buf,
|
||||
cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
|
||||
|
Loading…
Reference in New Issue
Block a user