diff options
author | Jason Gunthorpe <jgg@mellanox.com> | 2019-08-21 13:12:29 -0400 |
---|---|---|
committer | Jason Gunthorpe <jgg@mellanox.com> | 2019-08-21 19:58:18 -0400 |
commit | daa138a58c802e7b4c2fb73f9b85bb082616ef43 (patch) | |
tree | be913e8e3745bb367d2ba371598f447649102cfc /fs/namespace.c | |
parent | 6869b7b206595ae0e326f59719090351eb8f4f5d (diff) | |
parent | fba0e448a2c5b297a4ddc1ec4e48f4aa6600a1c9 (diff) |
Merge branch 'odp_fixes' into hmm.git
From rdma.git
Jason Gunthorpe says:
====================
This is a collection of general cleanups for ODP to clarify some of the
flows around umem creation and use of the interval tree.
====================
The branch is based on v5.3-rc5 due to dependencies, and is being taken
into hmm.git due to dependencies in the next patches.
* odp_fixes:
RDMA/mlx5: Use odp instead of mr->umem in pagefault_mr
RDMA/mlx5: Use ib_umem_start instead of umem.address
RDMA/core: Make invalidate_range a device operation
RDMA/odp: Use kvcalloc for the dma_list and page_list
RDMA/odp: Check for overflow when computing the umem_odp end
RDMA/odp: Provide ib_umem_odp_release() to undo the allocs
RDMA/odp: Split creating a umem_odp from ib_umem_get
RDMA/odp: Make the three ways to create a umem_odp clear
RMDA/odp: Consolidate umem_odp initialization
RDMA/odp: Make it clearer when a umem is an implicit ODP umem
RDMA/odp: Iterate over the whole rbtree directly
RDMA/odp: Use the common interval tree library instead of generic
RDMA/mlx5: Fix MR npages calculation for IB_ACCESS_HUGETLB
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Diffstat (limited to 'fs/namespace.c')
-rw-r--r-- | fs/namespace.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 6464ea4acba9..d28d30b13043 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -1463,7 +1463,6 @@ static void umount_tree(struct mount *mnt, enum umount_tree_flags how) | |||
1463 | p->mnt.mnt_flags |= MNT_SYNC_UMOUNT; | 1463 | p->mnt.mnt_flags |= MNT_SYNC_UMOUNT; |
1464 | 1464 | ||
1465 | disconnect = disconnect_mount(p, how); | 1465 | disconnect = disconnect_mount(p, how); |
1466 | |||
1467 | if (mnt_has_parent(p)) { | 1466 | if (mnt_has_parent(p)) { |
1468 | mnt_add_count(p->mnt_parent, -1); | 1467 | mnt_add_count(p->mnt_parent, -1); |
1469 | if (!disconnect) { | 1468 | if (!disconnect) { |
@@ -1471,10 +1470,11 @@ static void umount_tree(struct mount *mnt, enum umount_tree_flags how) | |||
1471 | list_add_tail(&p->mnt_child, &p->mnt_parent->mnt_mounts); | 1470 | list_add_tail(&p->mnt_child, &p->mnt_parent->mnt_mounts); |
1472 | } else { | 1471 | } else { |
1473 | umount_mnt(p); | 1472 | umount_mnt(p); |
1474 | hlist_add_head(&p->mnt_umount, &unmounted); | ||
1475 | } | 1473 | } |
1476 | } | 1474 | } |
1477 | change_mnt_propagation(p, MS_PRIVATE); | 1475 | change_mnt_propagation(p, MS_PRIVATE); |
1476 | if (disconnect) | ||
1477 | hlist_add_head(&p->mnt_umount, &unmounted); | ||
1478 | } | 1478 | } |
1479 | } | 1479 | } |
1480 | 1480 | ||