Re: [PATCH 1/8] writeback: move super_block argument to structwriteback_control

From: Jens Axboe
Date: Wed Sep 02 2009 - 02:45:59 EST


On Tue, Sep 01 2009, Christoph Hellwig wrote:
> On Tue, Sep 01, 2009 at 01:18:59PM +0200, Jens Axboe wrote:
> > Signed-off-by: Jens Axboe <jens.axboe@xxxxxxxxxx>
> > ---
> > drivers/staging/pohmelfs/inode.c | 3 ++-
> > fs/fs-writeback.c | 14 +++++++-------
> > fs/ubifs/budget.c | 5 +++--
> > fs/ubifs/super.c | 3 ++-
> > include/linux/fs.h | 3 +--
> > include/linux/writeback.h | 2 ++
>
> I think we need better calling conventions here. Currently this whole
> area is on crack, we have from highest to lowest layer:
>
>
> - sync_inodes_sb - does two totally different things based on the
> wait flag. If the wait flag is set does a WB_SYNC_ALL writeout
> of all pages. If not does a WB_SYNC_NONE based on some whacky
> heuristics despite actually wanting to write out everything.
> - sync_sb_inodes - toally useless wrapper. Introduces because reiser4
> eventually wanted to hook in there, but that needs some major
> rethinking before it can happen.
> - generic_sync_inodes_sb - used to implement both cases of
> sync_inodes_sb, plus:
>
> - UBIFS budgeting writeouts, in either blocking or non-blocking
> way
> - UBIFS sync use that is gone in -next because we fixed sync
> - a complete crackpot usage in pohmelfs, which we fortunately can
> simply ignore because it's in -staging.
>
>
> So instead of exporting generic_sync_sb_inodes which now takes just
> a wbc we should just export two helpers to either data integrity sync
> and SB or do a SYNC_NONE on it, both taking no other parameter than
> the superblock.

Agreed, that would clean it up nicely. I'll do that as a prep patch,
too.

--
Jens Axboe

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/