aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-log-userspace-base.c
diff options
context:
space:
mode:
authorJonathan Brassow <jbrassow@redhat.com>2011-01-13 14:59:49 -0500
committerAlasdair G Kergon <agk@redhat.com>2011-01-13 14:59:49 -0500
commit4a038677df4da84e42fd68b5ab2dfa4d82baa444 (patch)
tree83ba491f4af4cf736b44088ad23eab45dcf92277 /drivers/md/dm-log-userspace-base.c
parent69a8cfcda21017364df1c21b720daf304b5598a6 (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.c10
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
215static void userspace_dtr(struct dm_dirty_log *log) 218static 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