summaryrefslogtreecommitdiff
path: root/drivers/md/dm-ioctl.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2023-10-07 11:32:24 +0200
committerIngo Molnar <mingo@kernel.org>2023-10-07 11:32:24 +0200
commit8db30574db25fa20cdcfa03e374edc3f8b8dc301 (patch)
tree0b54686593694b68fb0537197eaa4bec7a44985d /drivers/md/dm-ioctl.c
parentd4d6596b43868a1e05fe5b047e73c3aff96444c6 (diff)
parent9e0bc36ab07c550d791bf17feeb479f1dfc42d89 (diff)
downloadlinux-next-8db30574db25fa20cdcfa03e374edc3f8b8dc301.tar.gz
linux-next-8db30574db25fa20cdcfa03e374edc3f8b8dc301.zip
Merge branch 'sched/urgent' into sched/core, to pick up fixes and refresh the branch
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/md/dm-ioctl.c')
-rw-r--r--drivers/md/dm-ioctl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
index f5ed729a8e0c..21ebb6c39394 100644
--- a/drivers/md/dm-ioctl.c
+++ b/drivers/md/dm-ioctl.c
@@ -1630,6 +1630,8 @@ static void retrieve_deps(struct dm_table *table,
struct dm_dev_internal *dd;
struct dm_target_deps *deps;
+ down_read(&table->devices_lock);
+
deps = get_result_buffer(param, param_size, &len);
/*
@@ -1644,7 +1646,7 @@ static void retrieve_deps(struct dm_table *table,
needed = struct_size(deps, dev, count);
if (len < needed) {
param->flags |= DM_BUFFER_FULL_FLAG;
- return;
+ goto out;
}
/*
@@ -1656,6 +1658,9 @@ static void retrieve_deps(struct dm_table *table,
deps->dev[count++] = huge_encode_dev(dd->dm_dev->bdev->bd_dev);
param->data_size = param->data_start + needed;
+
+out:
+ up_read(&table->devices_lock);
}
static int table_deps(struct file *filp, struct dm_ioctl *param, size_t param_size)