Re: [PATCH RFC 8/8] xfs: use super write guard in xfs_file_ioctl()

Darrick J. Wong
2025-11-05T17:47:06Z

On Tue, Nov 04, 2025 at 09:57:30PM +0100, Christian Brauner wrote:
> On Tue, Nov 04, 2025 at 09:08:45AM -0800, Darrick J. Wong wrote:
> > On Tue, Nov 04, 2025 at 01:12:37PM +0100, Christian Brauner wrote:
> > > Signed-off-by: Christian Brauner <brauner@kernel.org>
> > > ---
> > > fs/xfs/xfs_ioctl.c | 6 ++----
> > > 1 file changed, 2 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
> > > index a6bb7ee7a27a..f72e96f54cb5 100644
> > > --- a/fs/xfs/xfs_ioctl.c
> > > +++ b/fs/xfs/xfs_ioctl.c
> > > @@ -1408,10 +1408,8 @@ xfs_file_ioctl(
> > >
> > > trace_xfs_ioc_free_eofblocks(mp, &icw, _RET_IP_);
> > >
> > > - sb_start_write(mp->m_super);
> > > - error = xfs_blockgc_free_space(mp, &icw);
> > > - sb_end_write(mp->m_super);
> > > - return error;
> > > + scoped_guard(super_write, mp->m_super)
> > > + return xfs_blockgc_free_space(mp, &icw);
> >
> > Can we go full on Java?
> >
> > #define with_sb_write(sb) scoped_guard(super_write, (sb))
> >
> > with_sb_write(mp->m_super)
> > return xfs_blockgc_free_space(mp, &icw);
> >
> > I still keep seeing scoped_guard() as a function call, not the sort of
> > thing that starts a new block.
> >
> > [If I missed the bikeshedding war over this, I'll let this go]
>
> It's an option and what I did for the creds stuff. The thing is thought
> that scoped_guard() is more widespread by now and thus probably easier
> to grasp for readers that are familiar with it. I'm not married to it.

The wait_ macro would maintain sb_.*_write greppability, though I don't
know how important that might be.

--D