diff options
author | Jonathan Brassow <jbrassow@redhat.com> | 2011-01-13 22:59:49 +0300 |
---|---|---|
committer | Alasdair G Kergon <agk@redhat.com> | 2011-01-13 22:59:49 +0300 |
commit | 4a038677df4da84e42fd68b5ab2dfa4d82baa444 (patch) | |
tree | 83ba491f4af4cf736b44088ad23eab45dcf92277 /drivers | |
parent | 69a8cfcda21017364df1c21b720daf304b5598a6 (diff) | |
download | linux-4a038677df4da84e42fd68b5ab2dfa4d82baa444.tar.xz |
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')
-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, r = dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_CTR, ctr_str, str_size, NULL, NULL); - if (r == -ESRCH) { - DMERR("Userspace log server not found"); + if (r < 0) { + if (r == -ESRCH) + DMERR("Userspace log server not found"); + else + DMERR("Userspace log server failed to create log"); goto out; } @@ -214,10 +217,9 @@ out: static void userspace_dtr(struct dm_dirty_log *log) { - int r; struct log_c *lc = log->context; - r = dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_DTR, + (void) dm_consult_userspace(lc->uuid, lc->luid, DM_ULOG_DTR, NULL, 0, NULL, NULL); |