loop-util: add api for locking the block device with flock()
This commit is contained in:
parent
c37878fced
commit
441ec80468
|
@ -3,6 +3,7 @@
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <linux/loop.h>
|
#include <linux/loop.h>
|
||||||
|
#include <sys/file.h>
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
|
|
||||||
#include "alloc-util.h"
|
#include "alloc-util.h"
|
||||||
|
@ -233,3 +234,15 @@ int loop_device_refresh_size(LoopDevice *d, uint64_t offset, uint64_t size) {
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int loop_device_flock(LoopDevice *d, int operation) {
|
||||||
|
assert(d);
|
||||||
|
|
||||||
|
if (d->fd < 0)
|
||||||
|
return -EBADF;
|
||||||
|
|
||||||
|
if (flock(d->fd, operation) < 0)
|
||||||
|
return -errno;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
@ -28,3 +28,5 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(LoopDevice*, loop_device_unref);
|
||||||
void loop_device_relinquish(LoopDevice *d);
|
void loop_device_relinquish(LoopDevice *d);
|
||||||
|
|
||||||
int loop_device_refresh_size(LoopDevice *d, uint64_t offset, uint64_t size);
|
int loop_device_refresh_size(LoopDevice *d, uint64_t offset, uint64_t size);
|
||||||
|
|
||||||
|
int loop_device_flock(LoopDevice *d, int operation);
|
||||||
|
|
Loading…
Reference in a new issue