diff options
| author | Jonathan Brassow <jbrassow@redhat.com> | 2011-01-13 19:59:49 +0000 | 
|---|---|---|
| committer | Alasdair G Kergon <agk@redhat.com> | 2011-01-13 19:59:49 +0000 | 
| commit | 4a038677df4da84e42fd68b5ab2dfa4d82baa444 (patch) | |
| tree | 83ba491f4af4cf736b44088ad23eab45dcf92277 /drivers/md/dm-log-userspace-base.c | |
| parent | 69a8cfcda21017364df1c21b720daf304b5598a6 (diff) | |
| download | olio-linux-3.10-4a038677df4da84e42fd68b5ab2dfa4d82baa444.tar.xz olio-linux-3.10-4a038677df4da84e42fd68b5ab2dfa4d82baa444.zip  | |
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 1ed0094f064..1c25ad3d02a 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);  |