trouble with __aquires(lock) __releases(lock)

Jim Cromie jim.cromie at gmail.com
Fri Aug 5 17:41:58 EDT 2011


Im trying to use macros from include/linux/compiler.h
and theyre giving me warnings that dont look right.

after thrashing on my own hacks, I looked to well established uses for guidance.
But make C=1 fs/file.o also gives errors, similar to mine.

What am I missing ?
or has some bitrot set in ?

 202static int expand_fdtable(struct files_struct *files, int nr)
 203        __releases(files->file_lock)
 204        __acquires(files->file_lock)
 205{
 206        struct fdtable *new_fdt, *cur_fdt;
 207
 208        spin_unlock(&files->file_lock);
 209        new_fdt = alloc_fdtable(nr);
 210        spin_lock(&files->file_lock);
...

 247int expand_files(struct files_struct *files, int nr)
 248{
 ...
268        /* All good, so we try */
 269        return expand_fdtable(files, nr);
 270}


  CHECK   /home/jimc/projects/lx/linux-2.6/fs/file.c
/home/jimc/projects/lx/linux-2.6/fs/file.c:32:5: warning: symbol
'sysctl_nr_open_min' was not declared. Should it be static?
/home/jimc/projects/lx/linux-2.6/fs/file.c:33:5: warning: symbol
'sysctl_nr_open_max' was not declared. Should it be static?
/home/jimc/projects/lx/linux-2.6/fs/file.c:416:21: warning: symbol
'init_files' was not declared. Should it be static?
/home/jimc/projects/lx/linux-2.6/include/linux/spinlock.h:325:2:
warning: context problem in 'expand_fdtable': '_raw_spin_unlock'
expected different context
/home/jimc/projects/lx/linux-2.6/include/linux/spinlock.h:325:2:
context 'lock': wanted >= 1, got 0
/home/jimc/projects/lx/linux-2.6/fs/file.c:269:23: warning: context
problem in 'expand_files': 'expand_fdtable' expected different context
/home/jimc/projects/lx/linux-2.6/fs/file.c:269:23:    context
'file_lock': wanted >= 1, got 0



More information about the Kernelnewbies mailing list