Lines Matching defs:lock

96     pthread_mutex_t lock;
103 struct lock {
109 struct lock *next;
129 struct lock *locks;
133 pthread_mutex_t lock;
403 pthread_mutex_lock(&f->lock);
424 pthread_mutex_unlock(&f->lock);
488 pthread_mutex_lock(&f->lock);
500 pthread_mutex_unlock(&f->lock);
529 pthread_mutex_lock(&f->lock);
541 pthread_mutex_unlock(&f->lock);
568 pthread_mutex_lock(&f->lock);
576 pthread_mutex_unlock(&f->lock);
583 pthread_mutex_lock(&f->lock);
587 pthread_mutex_unlock(&f->lock);
597 pthread_mutex_lock(&f->lock);
622 pthread_mutex_unlock(&f->lock);
663 pthread_mutex_lock(&f->lock);
672 pthread_cond_timedwait(&d->cond, &f->lock, &timeout);
674 pthread_mutex_unlock(&f->lock);
680 pthread_mutex_lock(&f->lock);
683 pthread_mutex_unlock(&f->lock);
901 struct fuse_file_info *fi, int cmd, struct flock *lock)
904 if (fs->op.lock)
905 return fs->op.lock(path, fi, cmd, lock);
1061 pthread_mutex_lock(&f->lock);
1065 pthread_mutex_unlock(&f->lock);
1080 pthread_mutex_lock(&f->lock);
1083 pthread_mutex_unlock(&f->lock);
1092 pthread_mutex_unlock(&f->lock);
1187 pthread_mutex_lock(&f->lock);
1189 pthread_mutex_unlock(&f->lock);
1400 pthread_mutex_lock(&f->lock);
1402 pthread_mutex_unlock(&f->lock);
1491 pthread_mutex_lock(&f->lock);
1493 pthread_mutex_unlock(&f->lock);
1769 pthread_mutex_lock(&f->lock);
1777 pthread_mutex_unlock(&f->lock);
1818 pthread_mutex_lock(&f->lock);
1820 pthread_mutex_unlock(&f->lock);
1854 pthread_mutex_lock(&f->lock);
1863 pthread_mutex_unlock(&f->lock);
1865 pthread_mutex_lock(&f->lock);
1876 pthread_mutex_unlock(&f->lock);
1909 pthread_mutex_lock(&f->lock);
1911 pthread_mutex_unlock(&f->lock);
2063 fuse_mutex_init(&dh->lock);
2085 pthread_mutex_destroy(&dh->lock);
2090 pthread_mutex_destroy(&dh->lock);
2145 pthread_mutex_lock(&dh->fuse->lock);
2149 pthread_mutex_unlock(&dh->fuse->lock);
2212 pthread_mutex_lock(&dh->lock);
2237 pthread_mutex_unlock(&dh->lock);
2257 pthread_mutex_lock(&dh->lock);
2258 pthread_mutex_unlock(&dh->lock);
2259 pthread_mutex_destroy(&dh->lock);
2455 static struct lock *locks_conflict(struct node *node, const struct lock *lock)
2457 struct lock *l;
2460 if (l->owner != lock->owner &&
2461 lock->start <= l->end && l->start <= lock->end &&
2462 (l->type == F_WRLCK || lock->type == F_WRLCK))
2468 static void delete_lock(struct lock **lockp)
2470 struct lock *l = *lockp;
2475 static void insert_lock(struct lock **pos, struct lock *lock)
2477 lock->next = *pos;
2478 *pos = lock;
2481 static int locks_insert(struct node *node, struct lock *lock)
2483 struct lock **lp;
2484 struct lock *newl1 = NULL;
2485 struct lock *newl2 = NULL;
2487 if (lock->type != F_UNLCK || lock->start != 0 || lock->end != OFFSET_MAX) {
2488 newl1 = malloc(sizeof(struct lock));
2489 newl2 = malloc(sizeof(struct lock));
2499 struct lock *l = *lp;
2500 if (l->owner != lock->owner)
2503 if (lock->type == l->type) {
2504 if (l->end < lock->start - 1)
2506 if (lock->end < l->start - 1)
2508 if (l->start <= lock->start && lock->end <= l->end)
2510 if (l->start < lock->start)
2511 lock->start = l->start;
2512 if (lock->end < l->end)
2513 lock->end = l->end;
2516 if (l->end < lock->start)
2518 if (lock->end < l->start)
2520 if (lock->start <= l->start && l->end <= lock->end)
2522 if (l->end <= lock->end) {
2523 l->end = lock->start - 1;
2526 if (lock->start <= l->start) {
2527 l->start = lock->end + 1;
2531 newl2->start = lock->end + 1;
2532 l->end = lock->start - 1;
2543 if (lock->type != F_UNLCK) {
2544 *newl1 = *lock;
2554 static void flock_to_lock(struct flock *flock, struct lock *lock)
2556 memset(lock, 0, sizeof(struct lock));
2557 lock->type = flock->l_type;
2558 lock->start = flock->l_start;
2559 lock->end = flock->l_len ? flock->l_start + flock->l_len - 1 : OFFSET_MAX;
2560 lock->pid = flock->l_pid;
2563 static void lock_to_flock(struct lock *lock, struct flock *flock)
2565 flock->l_type = lock->type;
2566 flock->l_start = lock->start;
2567 flock->l_len = (lock->end == OFFSET_MAX) ? 0 : lock->end - lock->start + 1;
2568 flock->l_pid = lock->pid;
2575 struct flock lock;
2576 struct lock l;
2581 memset(&lock, 0, sizeof(lock));
2582 lock.l_type = F_UNLCK;
2583 lock.l_whence = SEEK_SET;
2585 errlock = fuse_fs_lock(f->fs, path, fi, F_SETLK, &lock);
2589 flock_to_lock(&lock, &l);
2591 pthread_mutex_lock(&f->lock);
2593 pthread_mutex_unlock(&f->lock);
2595 /* if op.lock() is defined FLUSH is needed regardless of op.flush() */
2650 struct fuse_file_info *fi, struct flock *lock,
2663 err = fuse_fs_lock(f->fs, path, fi, cmd, lock);
2672 struct fuse_file_info *fi, struct flock *lock)
2675 struct lock l;
2676 struct lock *conflict;
2679 flock_to_lock(lock, &l);
2681 pthread_mutex_lock(&f->lock);
2684 lock_to_flock(conflict, lock);
2685 pthread_mutex_unlock(&f->lock);
2687 err = fuse_lock_common(req, ino, fi, lock, F_GETLK);
2692 fuse_reply_lock(req, lock);
2698 struct fuse_file_info *fi, struct flock *lock,
2701 int err = fuse_lock_common(req, ino, fi, lock, should_sleep ? F_SETLKW : F_SETLK);
2704 struct lock l;
2705 flock_to_lock(lock, &l);
2707 pthread_mutex_lock(&f->lock);
2709 pthread_mutex_unlock(&f->lock);
3078 if (!fs->op.lock) {
3150 fuse_mutex_init(&f->lock);
3242 pthread_mutex_destroy(&f->lock);