Commit be7cf174 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: move xfs_ioc_scrub_metadata to scrub.c

Move the scrub ioctl handler to scrub.c to keep the code together and to
reduce unnecessary code when CONFIG_XFS_ONLINE_SCRUB=n.
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent 271557de
...@@ -578,7 +578,7 @@ xchk_scrub_create_subord( ...@@ -578,7 +578,7 @@ xchk_scrub_create_subord(
} }
/* Dispatch metadata scrubbing. */ /* Dispatch metadata scrubbing. */
int STATIC int
xfs_scrub_metadata( xfs_scrub_metadata(
struct file *file, struct file *file,
struct xfs_scrub_metadata *sm) struct xfs_scrub_metadata *sm)
...@@ -724,3 +724,28 @@ xfs_scrub_metadata( ...@@ -724,3 +724,28 @@ xfs_scrub_metadata(
run.retries++; run.retries++;
goto retry_op; goto retry_op;
} }
/* Scrub one aspect of one piece of metadata. */
int
xfs_ioc_scrub_metadata(
struct file *file,
void __user *arg)
{
struct xfs_scrub_metadata scrub;
int error;
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
if (copy_from_user(&scrub, arg, sizeof(scrub)))
return -EFAULT;
error = xfs_scrub_metadata(file, &scrub);
if (error)
return error;
if (copy_to_user(arg, &scrub, sizeof(scrub)))
return -EFAULT;
return 0;
}
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
#define __XFS_SCRUB_H__ #define __XFS_SCRUB_H__
#ifndef CONFIG_XFS_ONLINE_SCRUB #ifndef CONFIG_XFS_ONLINE_SCRUB
# define xfs_scrub_metadata(file, sm) (-ENOTTY) # define xfs_ioc_scrub_metadata(f, a) (-ENOTTY)
#else #else
int xfs_scrub_metadata(struct file *file, struct xfs_scrub_metadata *sm); int xfs_ioc_scrub_metadata(struct file *file, void __user *arg);
#endif /* CONFIG_XFS_ONLINE_SCRUB */ #endif /* CONFIG_XFS_ONLINE_SCRUB */
#endif /* __XFS_SCRUB_H__ */ #endif /* __XFS_SCRUB_H__ */
...@@ -1055,30 +1055,6 @@ xfs_ioc_getfsmap( ...@@ -1055,30 +1055,6 @@ xfs_ioc_getfsmap(
return error; return error;
} }
STATIC int
xfs_ioc_scrub_metadata(
struct file *file,
void __user *arg)
{
struct xfs_scrub_metadata scrub;
int error;
if (!capable(CAP_SYS_ADMIN))
return -EPERM;
if (copy_from_user(&scrub, arg, sizeof(scrub)))
return -EFAULT;
error = xfs_scrub_metadata(file, &scrub);
if (error)
return error;
if (copy_to_user(arg, &scrub, sizeof(scrub)))
return -EFAULT;
return 0;
}
int int
xfs_ioc_swapext( xfs_ioc_swapext(
xfs_swapext_t *sxp) xfs_swapext_t *sxp)
......
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