static virLockSpaceResourcePtr
virLockSpaceResourceNew(virLockSpacePtr lockspace,
const char *resname,
- unsigned int flags,
- pid_t owner)
+ pid_t owner,
+ off_t start,
+ off_t len,
+ unsigned int flags)
{
virLockSpaceResourcePtr res;
bool shared = !!(flags & VIR_LOCK_SPACE_ACQUIRE_SHARED);
goto error;
}
- if (virFileLock(res->fd, shared, 0, 1, false) < 0) {
+ if (virFileLock(res->fd, shared, start, len, false) < 0) {
if (errno == EACCES || errno == EAGAIN) {
virReportError(VIR_ERR_RESOURCE_BUSY,
_("Lockspace resource '%s' is locked"),
goto error;
}
- if (virFileLock(res->fd, shared, 0, 1, false) < 0) {
+ if (virFileLock(res->fd, shared, start, len, false) < 0) {
if (errno == EACCES || errno == EAGAIN) {
virReportError(VIR_ERR_RESOURCE_BUSY,
_("Lockspace resource '%s' is locked"),
int virLockSpaceAcquireResource(virLockSpacePtr lockspace,
const char *resname,
pid_t owner,
+ off_t start,
+ off_t len,
unsigned int flags)
{
int ret = -1;
goto cleanup;
}
- if (!(res = virLockSpaceResourceNew(lockspace, resname, flags, owner)))
+ if (!(res = virLockSpaceResourceNew(lockspace, resname,
+ owner, start, len, flags)))
goto cleanup;
if (virHashAddEntry(lockspace->resources, resname, res) < 0) {
{
virLockSpacePtr lockspace;
int ret = -1;
+ const off_t start = 0;
+ const off_t len = 1;
rmdir(LOCKSPACE_DIR);
if (virLockSpaceCreateResource(lockspace, "foo") < 0)
goto cleanup;
- if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(), 0) < 0)
+ if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(), start, len, 0) < 0)
goto cleanup;
if (!virFileExists(LOCKSPACE_DIR "/foo"))
goto cleanup;
- if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(), 0) == 0)
+ if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(), start, len, 0) == 0)
goto cleanup;
if (virLockSpaceDeleteResource(lockspace, "foo") == 0)
{
virLockSpacePtr lockspace;
int ret = -1;
+ const off_t start = 0;
+ const off_t len = 1;
rmdir(LOCKSPACE_DIR);
goto cleanup;
if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(),
+ start, len,
VIR_LOCK_SPACE_ACQUIRE_AUTOCREATE) < 0)
goto cleanup;
{
virLockSpacePtr lockspace;
int ret = -1;
+ const off_t start = 0;
+ const off_t len = 1;
rmdir(LOCKSPACE_DIR);
goto cleanup;
if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(),
+ start, len,
VIR_LOCK_SPACE_ACQUIRE_SHARED) < 0)
goto cleanup;
- if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(), 0) == 0)
+ if (virLockSpaceAcquireResource(lockspace, "foo",
+ geteuid(), start, len, 0) == 0)
goto cleanup;
if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(),
+ start, len,
VIR_LOCK_SPACE_ACQUIRE_SHARED) < 0)
goto cleanup;
{
virLockSpacePtr lockspace;
int ret = -1;
+ const off_t start = 0;
+ const off_t len = 1;
rmdir(LOCKSPACE_DIR);
goto cleanup;
if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(),
+ start, len,
VIR_LOCK_SPACE_ACQUIRE_SHARED |
VIR_LOCK_SPACE_ACQUIRE_AUTOCREATE) < 0)
goto cleanup;
goto cleanup;
if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(),
+ start, len,
VIR_LOCK_SPACE_ACQUIRE_AUTOCREATE) == 0)
goto cleanup;
goto cleanup;
if (virLockSpaceAcquireResource(lockspace, "foo", geteuid(),
+ start, len,
VIR_LOCK_SPACE_ACQUIRE_SHARED |
VIR_LOCK_SPACE_ACQUIRE_AUTOCREATE) < 0)
goto cleanup;
{
virLockSpacePtr lockspace;
int ret = -1;
+ const off_t start = 0;
+ const off_t len = 1;
rmdir(LOCKSPACE_DIR);
if (virLockSpaceCreateResource(lockspace, LOCKSPACE_DIR "/foo") < 0)
goto cleanup;
- if (virLockSpaceAcquireResource(lockspace, LOCKSPACE_DIR "/foo", geteuid(), 0) < 0)
+ if (virLockSpaceAcquireResource(lockspace, LOCKSPACE_DIR "/foo",
+ geteuid(), start, len, 0) < 0)
goto cleanup;
if (!virFileExists(LOCKSPACE_DIR "/foo"))
goto cleanup;
- if (virLockSpaceAcquireResource(lockspace, LOCKSPACE_DIR "/foo", geteuid(), 0) == 0)
+ if (virLockSpaceAcquireResource(lockspace, LOCKSPACE_DIR "/foo",
+ geteuid(), start, len, 0) == 0)
goto cleanup;
if (virLockSpaceDeleteResource(lockspace, LOCKSPACE_DIR "/foo") == 0)