Re: [PATCH 03/25] xfs: probe the scrub ioctl

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 03, 2017 at 05:02:09PM -0700, Darrick J. Wong wrote:
> On Wed, Oct 04, 2017 at 10:32:47AM +1100, Dave Chinner wrote:
> > On Tue, Oct 03, 2017 at 01:41:08PM -0700, Darrick J. Wong wrote:
> > > +/*
> > > + * Scrub probe -- userspace uses this to probe if we're willing to
> > > + * scrub or repair a given mountpoint.
> > > + */
> > > +int
> > > +xfs_scrub_probe(
> > > +	struct xfs_scrub_context	*sc)
> > > +{
> > > +	if (sc->sm->sm_ino || sc->sm->sm_agno)
> > > +		return -EINVAL;
> > > +	if (sc->sm->sm_gen & ~XFS_SCRUB_FLAGS_OUT)
> > 
> > sm_flags?
> 
> sm_gen is correct because in xfs_scrub_probe we reflect back to
> userspace any valid scrub outflags that were passed in via sm_gen.
> Therefore we have to check sm_gen for unknown output flags so that we
> can error out on any invalid inputs from userland.

Hmmm - seeing sm_ino and sm_gen in the same structure immediately
makes me think {inode number, generation} tuple for uniquely
identifying inodes from userspace. What on earth would scrub output
flags be doing in a generation number? Indeed, from the first patch:

+struct xfs_scrub_metadata {
+       __u32 sm_type;          /* What to check? */
+       __u32 sm_flags;         /* flags; see below. */
+       __u64 sm_ino;           /* inode number. */
+       __u32 sm_gen;           /* inode generation. */
+       __u32 sm_agno;          /* ag number. */
+       __u64 sm_reserved[5];   /* pad to 64 bytes */
....

It is an inode generation number?

So I'm somewhat confused by flags appearing in the generation
number...

> xfs_scrub_metadata() unconditionally clears all the out flags from
> sm_flags on its way in, prior to any of the scrub handlers being called.
> 
> (It's possible I'm misunderstanding your question.)

What has tripped me up is that the probe function sm_gen abuse isn't
documented in this patch, so I had no idea why oflags were in
sm_gen.  Maybe you explained it previously, but I don't remember
that detail and there's nothing in the patch to remind me....

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux