]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
mm, dev_pagemap: Do not clear ->mapping on final put
authorDan Williams <dan.j.williams@intel.com>
Sat, 14 Jul 2018 04:50:01 +0000 (21:50 -0700)
committerJuerg Haefliger <juergh@canonical.com>
Wed, 24 Jul 2019 01:46:11 +0000 (19:46 -0600)
commit0b756c493882ac4844e1f8891d05a50a4718c314
treee29cb00a3d1bdcd61218b11a62a910788dab43b6
parent8f3a0d28d1e8f16f74b0396010eb20524a421646
mm, dev_pagemap: Do not clear ->mapping on final put

BugLink: https://bugs.launchpad.net/bugs/1835972
commit 2fa147bdbf672c53386a8f5f2c7fe358004c3ef8 upstream.

MEMORY_DEVICE_FS_DAX relies on typical page semantics whereby ->mapping
is only ever cleared by truncation, not final put.

Without this fix dax pages may forget their mapping association at the
end of every page pin event.

Move this atypical behavior that HMM wants into the HMM ->page_free()
callback.

Cc: <stable@vger.kernel.org>
Cc: Jan Kara <jack@suse.cz>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Fixes: d2c997c0f145 ("fs, dax: use page->mapping...")
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Acked-by: Jérôme Glisse <jglisse@redhat.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
kernel/memremap.c
mm/hmm.c