summaryrefslogtreecommitdiffstats
path: root/fs/xfs/scrub/rtbitmap.c
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@sandeen.net>2018-01-08 10:41:34 -0800
committerDarrick J. Wong <darrick.wong@oracle.com>2018-01-08 10:41:34 -0800
commit8e63083762d451d449fd9d280fd85c402a83d0f9 (patch)
tree72e9763760d7b31e7d6a77fdf485073b3b87b10c /fs/xfs/scrub/rtbitmap.c
parent0a085ddf0e69f832a1968f24e0d62ad9124f631b (diff)
downloadlinux-8e63083762d451d449fd9d280fd85c402a83d0f9.tar.gz
linux-8e63083762d451d449fd9d280fd85c402a83d0f9.tar.bz2
linux-8e63083762d451d449fd9d280fd85c402a83d0f9.zip
xfs: move all scrub input checking to xfs_scrub_validate
There were ad-hoc checks for some scrub types but not others; mark each scrub type with ... it's type, and use that to validate the allowed and/or required input fields. Moving these checks out of xfs_scrub_setup_ag_header makes it a thin wrapper, so unwrap it in the process. Signed-off-by: Eric Sandeen <sandeen@redhat.com> [darrick: add xfs_ prefix to enum, check scrub args after checking type] Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/scrub/rtbitmap.c')
-rw-r--r--fs/xfs/scrub/rtbitmap.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/fs/xfs/scrub/rtbitmap.c b/fs/xfs/scrub/rtbitmap.c
index c6fedb698008..6860d5d92515 100644
--- a/fs/xfs/scrub/rtbitmap.c
+++ b/fs/xfs/scrub/rtbitmap.c
@@ -43,22 +43,14 @@ xfs_scrub_setup_rt(
struct xfs_scrub_context *sc,
struct xfs_inode *ip)
{
- struct xfs_mount *mp = sc->mp;
- int error = 0;
-
- /*
- * If userspace gave us an AG number or inode data, they don't
- * know what they're doing. Get out.
- */
- if (sc->sm->sm_agno || sc->sm->sm_ino || sc->sm->sm_gen)
- return -EINVAL;
+ int error;
error = xfs_scrub_setup_fs(sc, ip);
if (error)
return error;
sc->ilock_flags = XFS_ILOCK_EXCL | XFS_ILOCK_RTBITMAP;
- sc->ip = mp->m_rbmip;
+ sc->ip = sc->mp->m_rbmip;
xfs_ilock(sc->ip, sc->ilock_flags);
return 0;