diff options
| author | Douglas Fuller <dfuller@redhat.com> | 2015-06-18 16:06:10 -0400 |
|---|---|---|
| committer | Ilya Dryomov <idryomov@gmail.com> | 2016-08-24 17:49:15 -0400 |
| commit | f66241cb99dac861aa2cedb9f05ffa98d70cbc6e (patch) | |
| tree | f3ef9ad38ebb057b0e0942b2a87d585a8f3fb41f /include | |
| parent | 428a715811fe74e8a8f09b830c8d3b5245096f8d (diff) | |
libceph: support for advisory locking on RADOS objects
This patch adds support for rados lock, unlock and break lock.
Based heavily on code by Mike Christie <michaelc@cs.wisc.edu>.
Signed-off-by: Douglas Fuller <dfuller@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Mike Christie <mchristi@redhat.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/ceph/cls_lock_client.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/ceph/cls_lock_client.h b/include/linux/ceph/cls_lock_client.h new file mode 100644 index 000000000000..4e4dffef22bb --- /dev/null +++ b/include/linux/ceph/cls_lock_client.h | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | #ifndef _LINUX_CEPH_CLS_LOCK_CLIENT_H | ||
| 2 | #define _LINUX_CEPH_CLS_LOCK_CLIENT_H | ||
| 3 | |||
| 4 | #include <linux/ceph/osd_client.h> | ||
| 5 | |||
| 6 | enum ceph_cls_lock_type { | ||
| 7 | CEPH_CLS_LOCK_NONE = 0, | ||
| 8 | CEPH_CLS_LOCK_EXCLUSIVE = 1, | ||
| 9 | CEPH_CLS_LOCK_SHARED = 2, | ||
| 10 | }; | ||
| 11 | |||
| 12 | int ceph_cls_lock(struct ceph_osd_client *osdc, | ||
| 13 | struct ceph_object_id *oid, | ||
| 14 | struct ceph_object_locator *oloc, | ||
| 15 | char *lock_name, u8 type, char *cookie, | ||
| 16 | char *tag, char *desc, u8 flags); | ||
| 17 | int ceph_cls_unlock(struct ceph_osd_client *osdc, | ||
| 18 | struct ceph_object_id *oid, | ||
| 19 | struct ceph_object_locator *oloc, | ||
| 20 | char *lock_name, char *cookie); | ||
| 21 | int ceph_cls_break_lock(struct ceph_osd_client *osdc, | ||
| 22 | struct ceph_object_id *oid, | ||
| 23 | struct ceph_object_locator *oloc, | ||
| 24 | char *lock_name, char *cookie, | ||
| 25 | struct ceph_entity_name *locker); | ||
| 26 | |||
| 27 | #endif | ||
