Re: [PATCH v2] mm/z3fold.c: Lock z3fold page before __SetPageMovable()

From: Andrew Morton
Date: Tue Jul 02 2019 - 20:53:11 EST


On Tue, 2 Jul 2019 15:17:47 -0700 Henry Burns <henryburns@xxxxxxxxxx> wrote:

> > > > > + if (can_sleep) {
> > > > > + lock_page(page);
> > > > > + __SetPageMovable(page, pool->inode->i_mapping);
> > > > > + unlock_page(page);
> > > > > + } else {
> > > > > + if (!WARN_ON(!trylock_page(page))) {
> > > > > + __SetPageMovable(page, pool->inode->i_mapping);
> > > > > + unlock_page(page);
> > > > > + } else {
> > > > > + pr_err("Newly allocated z3fold page is locked\n");
> > > > > + WARN_ON(1);

The WARN_ON will have already warned in this case.

But the whole idea of warning in this case may be undesirable. We KNOW
that the warning will sometimes trigger (yes?). So what's the point in
scaring users?

Also, pr_err(...)+WARN_ON(1) can basically be replaced with WARN(1, ...)?

> > > > > + }
> > > > > + }