On Sat, Mar 14, 2020 at 02:34:35AM +0800, Yang Shi wrote: > -extern int page_evictable(struct page *page); > +/* This seems to be in kernel-doc format already; could you add the extra '*' so it is added to the fine documentation? > + * page_evictable - test whether a page is evictable > + * @page: the page to test > + * > + * Test whether page is evictable--i.e., should be placed on active/inactive > + * lists vs unevictable list. > + * > + * Reasons page might not be evictable: > + * (1) page's mapping marked unevictable > + * (2) page is part of an mlocked VMA > + * > + */ > +static inline int page_evictable(struct page *page) > +{ > + int ret; > + > + /* Prevent address_space of inode and swap cache from being freed */ > + rcu_read_lock(); > + ret = !mapping_unevictable(page_mapping(page)) && !PageMlocked(page); > + rcu_read_unlock(); > + return ret; > +} This seems like it should return bool ... that might even lead to code generation improvement.