Re: [PATCH 6/8] Direct Migration V2: Avoid writeback / page_migrate() method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Christoph Lameter writes:
 > On Wed, 9 Nov 2005, Nikita Danilov wrote:
 > 
 > >  > +#ifdef CONFIG_MIGRATION
 > >  > +extern int buffer_migrate_page(struct page *, struct page *);
 > >  > +#else
 > >  > +#define buffer_migrate_page(a,b) NULL
 > >  > +#endif
 > > 
 > > Depending on the CONFIG_MIGRATION, the type of buffer_migrate_page(a,b)
 > > expansion is either int or void *, which doesn't look right.
 > 
 > But its right. You need to think about buffer_migrate_page as a pointer to 
 > a function.

buffer_migrate_page is a pointer to function.

buffer_migrate_page(a, b) is a value of type int (or void *).

 > 
 > > Moreover below you have initializations
 > > 
 > >         .migrate_page		= buffer_migrate_page,
 > > 
 > > that wouldn't compile when CONFIG_MIGRATION is not defined (as macro
 > > requires two arguments).
 > 
 > NULL is a void * pointer which should work.

$ cat > macro.c
#define buffer_migrate_page(a,b) NULL

int (*migrate_page) (void *, void *) = buffer_migrate_page;
^D
$ cc macro.c
macro.c:3: error: `buffer_migrate_page' undeclared here (not in a function)

When CONFIG_MIGRATION is not defined, buffer_migrate_page is a macro,
taking _two_ arguments. Name of such macro cannot be used without
argument list.

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

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux