mm/hmm: add missing unmaps of the ptep during hmm_vma_handle_pte()
authorJason Gunthorpe <jgg@mellanox.com>
Fri, 28 Feb 2020 19:30:37 +0000 (15:30 -0400)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 26 Mar 2020 17:33:37 +0000 (14:33 -0300)
commitdfdc22078f3f064d2659acdc42d886834f3a3863
tree4f1075acec97ffc965f156d6105e966ccea95efb
parentf8788d86ab28f61f7b46eb6be375f8a726783636
mm/hmm: add missing unmaps of the ptep during hmm_vma_handle_pte()

Many of the direct returns of error skipped doing the pte_unmap(). All non
zero exit paths must unmap the pte.

The pte_unmap() is split unnaturally like this because some of the error
exit paths trigger a sleep and must release the lock before sleeping.

Fixes: 992de9a8b751 ("mm/hmm: allow to mirror vma of a file on a DAX backed filesystem")
Fixes: 53f5c3f489ec ("mm/hmm: factor out pte and pmd handling to simplify hmm_vma_walk_pmd()")
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
mm/hmm.c