mm/filemap: Add __folio_lock_async()
There aren't any actual callers of lock_page_async(), so remove it. Convert filemap_update_page() to call __folio_lock_async(). __folio_lock_async() is 21 bytes smaller than __lock_page_async(), but the real savings come from using a folio in filemap_update_page(), shrinking it from 515 bytes to 404 bytes, saving 110 bytes. The text shrinks by 132 bytes in total. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Acked-by: Jeff Layton <jlayton@kernel.org> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: William Kucharski <william.kucharski@oracle.com> Reviewed-by: David Howells <dhowells@redhat.com> Acked-by: Mike Rapoport <rppt@linux.ibm.com>
This commit is contained in:
@@ -654,7 +654,6 @@ static inline bool wake_page_match(struct wait_page_queue *wait_page,
|
||||
|
||||
void __folio_lock(struct folio *folio);
|
||||
int __folio_lock_killable(struct folio *folio);
|
||||
extern int __lock_page_async(struct page *page, struct wait_page_queue *wait);
|
||||
extern int __lock_page_or_retry(struct page *page, struct mm_struct *mm,
|
||||
unsigned int flags);
|
||||
void unlock_page(struct page *page);
|
||||
@@ -711,22 +710,6 @@ static inline int lock_page_killable(struct page *page)
|
||||
return folio_lock_killable(page_folio(page));
|
||||
}
|
||||
|
||||
/*
|
||||
* lock_page_async - Lock the page, unless this would block. If the page
|
||||
* is already locked, then queue a callback when the page becomes unlocked.
|
||||
* This callback can then retry the operation.
|
||||
*
|
||||
* Returns 0 if the page is locked successfully, or -EIOCBQUEUED if the page
|
||||
* was already locked and the callback defined in 'wait' was queued.
|
||||
*/
|
||||
static inline int lock_page_async(struct page *page,
|
||||
struct wait_page_queue *wait)
|
||||
{
|
||||
if (!trylock_page(page))
|
||||
return __lock_page_async(page, wait);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* lock_page_or_retry - Lock the page, unless this would block and the
|
||||
* caller indicated that it can handle a retry.
|
||||
|
||||
Reference in New Issue
Block a user