diff options
| author | David S. Miller <davem@davemloft.net> | 2019-03-04 13:26:15 -0800 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2019-03-04 13:26:15 -0800 |
| commit | 18a4d8bf250a33c015955f0dec27259780ef6448 (patch) | |
| tree | 3e380812ac047fef70c0da52ba74705ee62b7130 /fs/hugetlbfs/inode.c | |
| parent | 096461de96a94c856190ba892ebf62dfba5a38f1 (diff) | |
| parent | 822e44b45eb991c63487c5e2ce7d636411870a8d (diff) | |
| download | linux-18a4d8bf250a33c015955f0dec27259780ef6448.tar.gz linux-18a4d8bf250a33c015955f0dec27259780ef6448.tar.bz2 linux-18a4d8bf250a33c015955f0dec27259780ef6448.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'fs/hugetlbfs/inode.c')
| -rw-r--r-- | fs/hugetlbfs/inode.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index 32920a10100e..a7fa037b876b 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -859,6 +859,18 @@ static int hugetlbfs_migrate_page(struct address_space *mapping, rc = migrate_huge_page_move_mapping(mapping, newpage, page); if (rc != MIGRATEPAGE_SUCCESS) return rc; + + /* + * page_private is subpool pointer in hugetlb pages. Transfer to + * new page. PagePrivate is not associated with page_private for + * hugetlb pages and can not be set here as only page_huge_active + * pages can be migrated. + */ + if (page_private(page)) { + set_page_private(newpage, page_private(page)); + set_page_private(page, 0); + } + if (mode != MIGRATE_SYNC_NO_COPY) migrate_page_copy(newpage, page); else |
