Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a6c9904 authored by Al Viro's avatar Al Viro
Browse files

teach shmem_get_link() to work in RCU mode



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d3883d4f
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -2501,12 +2501,20 @@ static const char *shmem_get_link(struct dentry *dentry,
{
	struct page *page = NULL;
	int error;
	if (!dentry)
	if (!dentry) {
		page = find_get_page(inode->i_mapping, 0);
		if (!page)
			return ERR_PTR(-ECHILD);
		if (!PageUptodate(page)) {
			put_page(page);
			return ERR_PTR(-ECHILD);
		}
	} else {
		error = shmem_getpage(inode, 0, &page, SGP_READ, NULL);
		if (error)
			return ERR_PTR(error);
		unlock_page(page);
	}
	*cookie = page;
	return page_address(page);
}