10
#include <glusterfs/glusterfs.h>
11
#include <glusterfs/compat.h>
12
#include <glusterfs/xlator.h>
13
#include <glusterfs/logging.h>
14
#include <glusterfs/common-utils.h>
15
#include <glusterfs/list.h>
26
lock_name(pl_inode_t *, const char *, entrylk_type);
28
unlock_name(pl_inode_t *, const char *, entrylk_type);
31
main(int argc, char **argv)
36
pl_inode_t *pinode = CALLOC(sizeof(pl_inode_t), 1);
37
pthread_mutex_init(&pinode->dir_lock_mutex, NULL);
38
INIT_LIST_HEAD(&pinode->gf_dir_locks);
40
r = lock_name(pinode, NULL, ENTRYLK_WRLCK);
43
r = lock_name(pinode, "foo", ENTRYLK_WRLCK);
46
r = unlock_name(pinode, NULL, ENTRYLK_WRLCK);
49
r = lock_name(pinode, "foo", ENTRYLK_RDLCK);
52
r = lock_name(pinode, "foo", ENTRYLK_RDLCK);
55
r = lock_name(pinode, "foo", ENTRYLK_WRLCK);
58
r = unlock_name(pinode, "foo", ENTRYLK_RDLCK);
61
r = unlock_name(pinode, "foo", ENTRYLK_RDLCK);
64
r = lock_name(pinode, "foo", ENTRYLK_WRLCK);
66
r = unlock_name(pinode, "foo", ENTRYLK_WRLCK);
69
r = lock_name(pinode, "baz", ENTRYLK_WRLCK);
71
r = lock_name(pinode, "baz", ENTRYLK_RDLCK);