diff options
author | Jonathan Brassow <jbrassow@redhat.com> | 2011-01-13 14:59:49 -0500 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2011-01-13 14:59:49 -0500 |
commit | 4a038677df4da84e42fd68b5ab2dfa4d82baa444 (patch) | |
tree | 83ba491f4af4cf736b44088ad23eab45dcf92277 /drivers/md/dm-log-userspace-base.c | |
parent | 69a8cfcda21017364df1c21b720daf304b5598a6 (diff) |
dm log userspace: trap all failed log construction errors
When constructing a mirror log, it is possible for the initial request
to fail for other reasons besides -ESRCH. These must be handled too.
Signed-off-by: Jonathan Brassow <jbrassow@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Diffstat (limited to 'drivers/md/dm-log-userspace-base.c')
-rw-r--r-- | drivers/md/dm-log-userspace-base.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/md/dm-log-userspace-base.c b/drivers/md/dm-log-userspace-base.c index 1ed0094f064b..1c25ad3d02a2 100644 --- a/drivers/md/dm-log-userspace-base.c +++ b/drivers/md/dm-log-userspace-base.c | |||
@@ -181,8 +181,11 @@ static int userspace_ctr(struct dm_dirty_log *log, struct dm_target *ti, | |||
181 | r = dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_CTR, | 181 | r = dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_CTR, |
182 | ctr_str, str_size, NULL, NULL); | 182 | ctr_str, str_size, NULL, NULL); |
183 | 183 | ||
184 | if (r == -ESRCH) { | 184 | if (r < 0) { |
185 | DMERR("Userspace log server not found"); | 185 | if (r == -ESRCH) |
186 | DMERR("Userspace log server not found"); | ||
187 | else | ||
188 | DMERR("Userspace log server failed to create log"); | ||
186 | goto out; | 189 | goto out; |
187 | } | 190 | } |
188 | 191 | ||
@@ -214,10 +217,9 @@ out: | |||
214 | 217 | ||
215 | static void userspace_dtr(struct dm_dirty_log *log) | 218 | static void userspace_dtr(struct dm_dirty_log *log) |
216 | { | 219 | { |
217 | int r; | ||
218 | struct log_c *lc = log->context; | 220 | struct log_c *lc = log->context; |
219 | 221 | ||
220 | r = dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_DTR, | 222 | (void) dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_DTR, |
221 | NULL, 0, | 223 | NULL, 0, |
222 | NULL, NULL); | 224 | NULL, NULL); |
223 | 225 | ||