Re: [GIT PULL] IDA changes for 4.19

From: Matthew Wilcox
Date: Wed Aug 22 2018 - 00:27:24 EST


On Mon, Aug 13, 2018 at 01:00:03PM -0700, Matthew Wilcox wrote:
>
> Hi Linus,
>
> Please pull the IDA patchset. It depends on the XArray patchset, so
> ignore this pull request if you've decided not to pull the XArray patches.
> The new IDA API is similar to ida_simple_get() but better named. The
> internal restructuring of the IDA code removes the bitmap preallocation
> nonsense.

I've redone this patchset to not depend on the XArray. It no longer
removes the bitmap preallocation because that was too entangled with the
rewrite to use the XArray. But it does give us a better IDA API --
id = ida_alloc(ida, GFP_xxx); ida_free(ida, id); rather than the
cumbersome ida_simple_get(), ida_simple_remove(). The preallocation is
no longer visible to consumers, so removing it will be easier next round.

I hope the net -200 lines of code is convincing.

The following changes since commit 94710cac0ef4ee177a63b5227664b38c95bbf703:

Linux 4.18 (2018-08-12 13:41:04 -0700)

are available in the Git repository at:

git://git.infradead.org/users/willy/linux-dax.git ida-4.19

for you to fetch changes up to 1df895190233fcc30d46beca4550bcafb7b959a6:

ida: Change ida_get_new_above to return the id (2018-08-21 23:54:21 -0400)

----------------------------------------------------------------
Matthew Wilcox (28):
radix tree test suite: Fix compilation
radix tree test suite: Enable ubsan
radix-tree: Fix UBSAN warning
ida: Lock the IDA in ida_destroy
ida: Add new API
mtip32xx: Convert to new IDA API
fs: Convert unnamed_dev_ida to new API
fs: Convert namespace IDAs to new API
devpts: Convert to new IDA API
sd: Convert to new IDA API
osd: Convert to new IDA API
rsxx: Convert to new IDA API
cb710: Convert to new IDA API
Convert net_namespace to new IDA API
ppc: Convert mmu context allocation to new IDA API
media: Convert entity ID allocation to new IDA API
ppc: Convert vas ID allocation to new IDA API
dmaengine: Convert to new IDA API
drm/vmwgfx: Convert to new IDA API
target/iscsi: Allocate session IDs from an IDA
ida: Start new test_ida module
idr-test: Convert ida_check_nomem to new API
test_ida: Move ida_check_leaf
test_ida: Move ida_check_max
test_ida: Convert check_ida_conv to new API
test_ida: check_ida_destroy and check_ida_alloc
ida: Remove old API
ida: Change ida_get_new_above to return the id

Mike Christie (1):
iscsi target: fix session creation failure handling

arch/powerpc/mm/mmu_context_book3s64.c | 44 +-----
arch/powerpc/platforms/powernv/vas-window.c | 26 +---
drivers/block/mtip32xx/mtip32xx.c | 29 +---
drivers/block/rsxx/core.c | 21 +--
drivers/dma/dmaengine.c | 23 +--
drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c | 41 ++---
drivers/media/media-device.c | 16 +-
drivers/misc/cb710/core.c | 23 +--
drivers/scsi/osd/osd_uld.c | 22 +--
drivers/scsi/sd.c | 21 +--
drivers/target/iscsi/iscsi_target.c | 10 +-
drivers/target/iscsi/iscsi_target.h | 4 +-
drivers/target/iscsi/iscsi_target_login.c | 41 +++--
fs/devpts/inode.c | 47 ++----
fs/namespace.c | 50 ++----
fs/super.c | 67 +++-----
include/linux/idr.h | 68 ++++++--
lib/Kconfig.debug | 3 +
lib/Makefile | 1 +
lib/idr.c | 155 +++++++------------
lib/radix-tree.c | 11 +-
lib/test_ida.c | 177 +++++++++++++++++++++
net/core/net_namespace.c | 16 +-
tools/testing/radix-tree/Makefile | 6 +-
tools/testing/radix-tree/idr-test.c | 214 +++++---------------------
tools/testing/radix-tree/linux/xarray.h | 2 +
tools/testing/radix-tree/main.c | 23 +--
tools/testing/radix-tree/test.h | 3 +-
28 files changed, 485 insertions(+), 679 deletions(-)
create mode 100644 lib/test_ida.c
create mode 100644 tools/testing/radix-tree/linux/xarray.h