diff options
Diffstat (limited to 'lib/libalpm')
| -rw-r--r-- | lib/libalpm/handle.c | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 234fc4d0..0efc0a96 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -125,12 +125,20 @@ int _alpm_handle_unlock(alpm_handle_t *handle)  	close(handle->lockfd);  	handle->lockfd = -1; -	if(unlink(handle->lockfile) && errno != ENOENT) { -		_alpm_log(handle, ALPM_LOG_WARNING, -				_("could not remove lock file %s\n"), handle->lockfile); -		alpm_logaction(handle, ALPM_CALLER_PREFIX, -				"warning: could not remove lock file %s\n", handle->lockfile); -		return -1; +	if(unlink(handle->lockfile) != 0) { +		if(errno == ENOENT) { +			_alpm_log(handle, ALPM_LOG_WARNING, +					_("lock file missing %s\n"), handle->lockfile); +			alpm_logaction(handle, ALPM_CALLER_PREFIX, +					"warning: lock file missing %s\n", handle->lockfile); +			return 0; +		} else { +			_alpm_log(handle, ALPM_LOG_WARNING, +					_("could not remove lock file %s\n"), handle->lockfile); +			alpm_logaction(handle, ALPM_CALLER_PREFIX, +					"warning: could not remove lock file %s\n", handle->lockfile); +			return -1; +		}  	}  	return 0;  } | 
