[dm-devel] [PATCH] SCHED: remove proliferation of wait_on_bit action functions.

Ingo Molnar mingo at kernel.org
Thu Jun 5 12:45:09 UTC 2014


* NeilBrown <neilb at suse.de> wrote:

> On Thu, 22 May 2014 11:05:02 +0200 Ingo Molnar <mingo at kernel.org> wrote:
> 
> > 
> > * NeilBrown <neilb at suse.de> wrote:
> > 
> > > [[ get_maintainer.pl suggested 61 email address for this patch.
> > >    I've trimmed that list somewhat.  Hope I didn't miss anyone
> > >    important...
> > >    I'm hoping it will go in through the scheduler tree, but would
> > >    particularly like an Acked-by for the fscache parts.  Other acks
> > >    welcome.
> > > ]]
> > > 
> > > The current "wait_on_bit" interface requires an 'action' function
> > > to be provided which does the actual waiting.
> > > There are over 20 such functions, many of them identical.
> > > Most cases can be satisfied by one of just two functions, one
> > > which uses io_schedule() and one which just uses schedule().
> > > 
> > > So:
> > >  Rename wait_on_bit and        wait_on_bit_lock to
> > >         wait_on_bit_action and wait_on_bit_lock_action
> > >  to make it explicit that they need an action function.
> > > 
> > >  Introduce new wait_on_bit{,_lock} and wait_on_bit{,_lock}_io
> > >  which are *not* given an action function but implicitly use
> > >  a standard one.
> > >  The decision to error-out if a signal is pending is now made
> > >  based on the 'mode' argument rather than being encoded in the action
> > >  function.
> > 
> > this patch fails to build on x86-32 allyesconfigs.
> 
> Could you share the build errors?

Sure, find it attached below.

> > 
> > Could we keep the old names for a while, and remove them in the next 
> > cycle or so?
> 
> I don't see how changing the names later rather than now will reduce the
> chance of errors... maybe I'm missing something.

Well, it would reduce build errors?

Thanks,

	Ingo

====================>
fs/cifs/file.c: In function ‘cifs_oplock_break’:
fs/cifs/file.c:3652:4: warning: passing argument 3 of ‘wait_on_bit’ makes integer from pointer without a cast [enabled by default]
    cifs_pending_writers_wait, TASK_UNINTERRUPTIBLE);
    ^
In file included from include/linux/fs.h:6:0,
                 from fs/cifs/file.c:24:
include/linux/wait.h:878:1: note: expected ‘unsigned int’ but argument is of type ‘int (*)(void *)’
 wait_on_bit(void *word, int bit, unsigned mode)
 ^
fs/cifs/file.c:3652:4: error: too many arguments to function ‘wait_on_bit’
    cifs_pending_writers_wait, TASK_UNINTERRUPTIBLE);
    ^
In file included from include/linux/fs.h:6:0,
                 from fs/cifs/file.c:24:
include/linux/wait.h:878:1: note: declared here
 wait_on_bit(void *word, int bit, unsigned mode)
 ^
  CC      kernel/smp.o
  CC      kernel/trace/trace_event_perf.o
make[2]: *** [fs/cifs/file.o] Error 1
make[2]: *** Waiting for unfinished jobs....
  CC      drivers/bcma/sprom.o
  CC      fs/btrfs/locking.o
  LD      sound/isa/ad1848/snd-ad1848.o
  LD      sound/isa/ad1848/built-in.o
  CC      sound/isa/cs423x/cs4231.o
  CC      lib/fonts/fonts.o
  CC      lib/fonts/font_sun8x16.o
  CC      drivers/bcma/driver_chipcommon.o
  CC      lib/fonts/font_sun12x22.o




More information about the dm-devel mailing list