Skip to content

Commit

Permalink
dm ioctl: make __dev_status void
Browse files Browse the repository at this point in the history
__dev_status() cannot fail so make it void and simplify callers.

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
  • Loading branch information
Alasdair G Kergon committed Aug 12, 2010
1 parent 6be5449 commit 094ea9a
Showing 1 changed file with 31 additions and 36 deletions.
67 changes: 31 additions & 36 deletions drivers/md/dm-ioctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ static struct dm_table *dm_get_live_or_inactive_table(struct mapped_device *md,
* Fills in a dm_ioctl structure, ready for sending back to
* userland.
*/
static int __dev_status(struct mapped_device *md, struct dm_ioctl *param)
static void __dev_status(struct mapped_device *md, struct dm_ioctl *param)
{
struct gendisk *disk = dm_disk(md);
struct dm_table *table;
Expand Down Expand Up @@ -617,8 +617,6 @@ static int __dev_status(struct mapped_device *md, struct dm_ioctl *param)
dm_table_put(table);
}
}

return 0;
}

static int dev_create(struct dm_ioctl *param, size_t param_size)
Expand All @@ -638,14 +636,14 @@ static int dev_create(struct dm_ioctl *param, size_t param_size)
return r;

r = dm_hash_insert(param->name, *param->uuid ? param->uuid : NULL, md);
if (r) {
dm_put(md);
return r;
}
if (r)
goto out;

param->flags &= ~DM_INACTIVE_PRESENT_FLAG;

r = __dev_status(md, param);
__dev_status(md, param);

out:
dm_put(md);

return r;
Expand Down Expand Up @@ -841,13 +839,17 @@ static int do_suspend(struct dm_ioctl *param)
if (param->flags & DM_NOFLUSH_FLAG)
suspend_flags |= DM_SUSPEND_NOFLUSH_FLAG;

if (!dm_suspended_md(md))
if (!dm_suspended_md(md)) {
r = dm_suspend(md, suspend_flags);
if (r)
goto out;
}

if (!r)
r = __dev_status(md, param);
__dev_status(md, param);

out:
dm_put(md);

return r;
}

Expand Down Expand Up @@ -909,7 +911,7 @@ static int do_resume(struct dm_ioctl *param)
dm_table_destroy(old_map);

if (!r)
r = __dev_status(md, param);
__dev_status(md, param);

dm_put(md);
return r;
Expand All @@ -933,16 +935,16 @@ static int dev_suspend(struct dm_ioctl *param, size_t param_size)
*/
static int dev_status(struct dm_ioctl *param, size_t param_size)
{
int r;
struct mapped_device *md;

md = find_device(param);
if (!md)
return -ENXIO;

r = __dev_status(md, param);
__dev_status(md, param);
dm_put(md);
return r;

return 0;
}

/*
Expand Down Expand Up @@ -1017,7 +1019,7 @@ static void retrieve_status(struct dm_table *table,
*/
static int dev_wait(struct dm_ioctl *param, size_t param_size)
{
int r;
int r = 0;
struct mapped_device *md;
struct dm_table *table;

Expand All @@ -1038,18 +1040,17 @@ static int dev_wait(struct dm_ioctl *param, size_t param_size)
* changed to trigger the event, so we may as well tell
* him and save an ioctl.
*/
r = __dev_status(md, param);
if (r)
goto out;
__dev_status(md, param);

table = dm_get_live_or_inactive_table(md, param);
if (table) {
retrieve_status(table, param, param_size);
dm_table_put(table);
}

out:
out:
dm_put(md);

return r;
}

Expand Down Expand Up @@ -1184,7 +1185,7 @@ static int table_load(struct dm_ioctl *param, size_t param_size)
up_write(&_hash_lock);

param->flags |= DM_INACTIVE_PRESENT_FLAG;
r = __dev_status(md, param);
__dev_status(md, param);

out:
dm_put(md);
Expand All @@ -1194,7 +1195,6 @@ static int table_load(struct dm_ioctl *param, size_t param_size)

static int table_clear(struct dm_ioctl *param, size_t param_size)
{
int r;
struct hash_cell *hc;
struct mapped_device *md;

Expand All @@ -1214,11 +1214,12 @@ static int table_clear(struct dm_ioctl *param, size_t param_size)

param->flags &= ~DM_INACTIVE_PRESENT_FLAG;

r = __dev_status(hc->md, param);
__dev_status(hc->md, param);
md = hc->md;
up_write(&_hash_lock);
dm_put(md);
return r;

return 0;
}

/*
Expand Down Expand Up @@ -1263,27 +1264,24 @@ static void retrieve_deps(struct dm_table *table,

static int table_deps(struct dm_ioctl *param, size_t param_size)
{
int r = 0;
struct mapped_device *md;
struct dm_table *table;

md = find_device(param);
if (!md)
return -ENXIO;

r = __dev_status(md, param);
if (r)
goto out;
__dev_status(md, param);

table = dm_get_live_or_inactive_table(md, param);
if (table) {
retrieve_deps(table, param, param_size);
dm_table_put(table);
}

out:
dm_put(md);
return r;

return 0;
}

/*
Expand All @@ -1292,27 +1290,24 @@ static int table_deps(struct dm_ioctl *param, size_t param_size)
*/
static int table_status(struct dm_ioctl *param, size_t param_size)
{
int r;
struct mapped_device *md;
struct dm_table *table;

md = find_device(param);
if (!md)
return -ENXIO;

r = __dev_status(md, param);
if (r)
goto out;
__dev_status(md, param);

table = dm_get_live_or_inactive_table(md, param);
if (table) {
retrieve_status(table, param, param_size);
dm_table_put(table);
}

out:
dm_put(md);
return r;

return 0;
}

/*
Expand Down

0 comments on commit 094ea9a

Please sign in to comment.