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>
This commit is contained in:

committed by
Ilya Dryomov

parent
428a715811
commit
f66241cb99
27
include/linux/ceph/cls_lock_client.h
Normal file
27
include/linux/ceph/cls_lock_client.h
Normal file
@@ -0,0 +1,27 @@
|
||||
#ifndef _LINUX_CEPH_CLS_LOCK_CLIENT_H
|
||||
#define _LINUX_CEPH_CLS_LOCK_CLIENT_H
|
||||
|
||||
#include <linux/ceph/osd_client.h>
|
||||
|
||||
enum ceph_cls_lock_type {
|
||||
CEPH_CLS_LOCK_NONE = 0,
|
||||
CEPH_CLS_LOCK_EXCLUSIVE = 1,
|
||||
CEPH_CLS_LOCK_SHARED = 2,
|
||||
};
|
||||
|
||||
int ceph_cls_lock(struct ceph_osd_client *osdc,
|
||||
struct ceph_object_id *oid,
|
||||
struct ceph_object_locator *oloc,
|
||||
char *lock_name, u8 type, char *cookie,
|
||||
char *tag, char *desc, u8 flags);
|
||||
int ceph_cls_unlock(struct ceph_osd_client *osdc,
|
||||
struct ceph_object_id *oid,
|
||||
struct ceph_object_locator *oloc,
|
||||
char *lock_name, char *cookie);
|
||||
int ceph_cls_break_lock(struct ceph_osd_client *osdc,
|
||||
struct ceph_object_id *oid,
|
||||
struct ceph_object_locator *oloc,
|
||||
char *lock_name, char *cookie,
|
||||
struct ceph_entity_name *locker);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user