Lines Matching refs:file_lock
79 static bool lease_breaking(struct file_lock *fl) in lease_breaking()
84 static int target_leasetype(struct file_lock *fl) in target_leasetype()
208 struct file_lock *fl; in locks_dump_ctx_list()
236 struct file_lock *fl; in locks_check_ctx_file_list()
259 static void locks_init_lock_heads(struct file_lock *fl) in locks_init_lock_heads()
269 struct file_lock *locks_alloc_lock(void) in locks_alloc_lock()
271 struct file_lock *fl = kmem_cache_zalloc(filelock_cache, GFP_KERNEL); in locks_alloc_lock()
280 void locks_release_private(struct file_lock *fl) in locks_release_private()
316 struct file_lock *fl; in locks_owner_has_blockers()
333 void locks_free_lock(struct file_lock *fl) in locks_free_lock()
343 struct file_lock *fl; in locks_dispose_list()
346 fl = list_first_entry(dispose, struct file_lock, fl_list); in locks_dispose_list()
352 void locks_init_lock(struct file_lock *fl) in locks_init_lock()
354 memset(fl, 0, sizeof(struct file_lock)); in locks_init_lock()
362 void locks_copy_conflock(struct file_lock *new, struct file_lock *fl) in locks_copy_conflock()
381 void locks_copy_lock(struct file_lock *new, struct file_lock *fl) in locks_copy_lock()
398 static void locks_move_blocks(struct file_lock *new, struct file_lock *fl) in locks_move_blocks()
400 struct file_lock *f; in locks_move_blocks()
429 static void flock_make_lock(struct file *filp, struct file_lock *fl, int type) in flock_make_lock()
441 static int assign_type(struct file_lock *fl, int type) in assign_type()
455 static int flock64_to_posix_lock(struct file *filp, struct file_lock *fl, in flock64_to_posix_lock()
505 static int flock_to_posix_lock(struct file *filp, struct file_lock *fl, in flock_to_posix_lock()
520 lease_break_callback(struct file_lock *fl) in lease_break_callback()
527 lease_setup(struct file_lock *fl, void **priv) in lease_setup()
552 static int lease_init(struct file *filp, int type, struct file_lock *fl) in lease_init()
570 static struct file_lock *lease_alloc(struct file *filp, int type) in lease_alloc()
572 struct file_lock *fl = locks_alloc_lock(); in lease_alloc()
588 static inline int locks_overlap(struct file_lock *fl1, struct file_lock *fl2) in locks_overlap()
597 static int posix_same_owner(struct file_lock *fl1, struct file_lock *fl2) in posix_same_owner()
603 static void locks_insert_global_locks(struct file_lock *fl) in locks_insert_global_locks()
616 static void locks_delete_global_locks(struct file_lock *fl) in locks_delete_global_locks()
637 posix_owner_key(struct file_lock *fl) in posix_owner_key()
642 static void locks_insert_global_blocked(struct file_lock *waiter) in locks_insert_global_blocked()
649 static void locks_delete_global_blocked(struct file_lock *waiter) in locks_delete_global_blocked()
661 static void __locks_delete_block(struct file_lock *waiter) in __locks_delete_block()
667 static void __locks_wake_up_blocks(struct file_lock *blocker) in __locks_wake_up_blocks()
670 struct file_lock *waiter; in __locks_wake_up_blocks()
673 struct file_lock, fl_blocked_member); in __locks_wake_up_blocks()
695 int locks_delete_block(struct file_lock *waiter) in locks_delete_block()
755 static void __locks_insert_block(struct file_lock *blocker, in __locks_insert_block() argument
756 struct file_lock *waiter, in __locks_insert_block()
757 bool conflict(struct file_lock *, in __locks_insert_block() argument
758 struct file_lock *)) in __locks_insert_block()
760 struct file_lock *fl; in __locks_insert_block()
782 static void locks_insert_block(struct file_lock *blocker, in locks_insert_block() argument
783 struct file_lock *waiter, in locks_insert_block()
784 bool conflict(struct file_lock *, in locks_insert_block() argument
785 struct file_lock *)) in locks_insert_block()
797 static void locks_wake_up_blocks(struct file_lock *blocker) in locks_wake_up_blocks()
815 locks_insert_lock_ctx(struct file_lock *fl, struct list_head *before) in locks_insert_lock_ctx()
822 locks_unlink_lock_ctx(struct file_lock *fl) in locks_unlink_lock_ctx()
830 locks_delete_lock_ctx(struct file_lock *fl, struct list_head *dispose) in locks_delete_lock_ctx()
842 static bool locks_conflict(struct file_lock *caller_fl, in locks_conflict()
843 struct file_lock *sys_fl) in locks_conflict()
855 static bool posix_locks_conflict(struct file_lock *caller_fl, in posix_locks_conflict()
856 struct file_lock *sys_fl) in posix_locks_conflict()
874 static bool posix_test_locks_conflict(struct file_lock *caller_fl, in posix_test_locks_conflict()
875 struct file_lock *sys_fl) in posix_test_locks_conflict()
889 static bool flock_locks_conflict(struct file_lock *caller_fl, in flock_locks_conflict()
890 struct file_lock *sys_fl) in flock_locks_conflict()
902 posix_test_lock(struct file *filp, struct file_lock *fl) in posix_test_lock()
904 struct file_lock *cfl; in posix_test_lock()
977 static struct file_lock *what_owner_is_waiting_for(struct file_lock *block_fl) in what_owner_is_waiting_for()
979 struct file_lock *fl; in what_owner_is_waiting_for()
992 static int posix_locks_deadlock(struct file_lock *caller_fl, in posix_locks_deadlock()
993 struct file_lock *block_fl) in posix_locks_deadlock()
1022 static int flock_lock_inode(struct inode *inode, struct file_lock *request) in flock_lock_inode()
1024 struct file_lock *new_fl = NULL; in flock_lock_inode()
1025 struct file_lock *fl; in flock_lock_inode()
1094 static int posix_lock_inode(struct inode *inode, struct file_lock *request, in posix_lock_inode()
1095 struct file_lock *conflock) in posix_lock_inode()
1097 struct file_lock *fl, *tmp; in posix_lock_inode()
1098 struct file_lock *new_fl = NULL; in posix_lock_inode()
1099 struct file_lock *new_fl2 = NULL; in posix_lock_inode()
1100 struct file_lock *left = NULL; in posix_lock_inode()
1101 struct file_lock *right = NULL; in posix_lock_inode()
1346 int posix_lock_file(struct file *filp, struct file_lock *fl, in posix_lock_file()
1347 struct file_lock *conflock) in posix_lock_file()
1360 static int posix_lock_inode_wait(struct inode *inode, struct file_lock *fl) in posix_lock_inode_wait()
1377 static void lease_clear_pending(struct file_lock *fl, int arg) in lease_clear_pending()
1389 int lease_modify(struct file_lock *fl, int arg, struct list_head *dispose) in lease_modify()
1424 struct file_lock *fl, *tmp; in time_out_leases()
1437 static bool leases_conflict(struct file_lock *lease, struct file_lock *breaker) in leases_conflict()
1460 any_leases_conflict(struct inode *inode, struct file_lock *breaker) in any_leases_conflict()
1463 struct file_lock *fl; in any_leases_conflict()
1491 struct file_lock *new_fl, *fl, *tmp; in __break_lease()
1551 fl = list_first_entry(&ctx->flc_lease, struct file_lock, fl_list); in __break_lease()
1605 struct file_lock *fl; in lease_get_mtime()
1611 struct file_lock, fl_list); in lease_get_mtime()
1647 struct file_lock *fl; in fcntl_getlease()
1719 generic_add_lease(struct file *filp, int arg, struct file_lock **flp, void **priv) in generic_add_lease()
1721 struct file_lock *fl, *my_fl = NULL, *lease; in generic_add_lease()
1830 struct file_lock *fl, *victim = NULL; in generic_delete_lease()
1870 int generic_setlease(struct file *filp, int arg, struct file_lock **flp, in generic_setlease()
1917 setlease_notifier(int arg, struct file_lock *lease) in setlease_notifier()
1953 vfs_setlease(struct file *filp, int arg, struct file_lock **lease, void **priv) in vfs_setlease()
1966 struct file_lock *fl; in do_fcntl_add_lease()
2013 static int flock_lock_inode_wait(struct inode *inode, struct file_lock *fl) in flock_lock_inode_wait()
2037 int locks_lock_inode_wait(struct inode *inode, struct file_lock *fl) in locks_lock_inode_wait()
2072 struct file_lock fl; in SYSCALL_DEFINE2()
2132 int vfs_test_lock(struct file *filp, struct file_lock *fl) in vfs_test_lock()
2149 static pid_t locks_translate_pid(struct file_lock *fl, struct pid_namespace *ns) in locks_translate_pid()
2173 static int posix_lock_to_flock(struct flock *flock, struct file_lock *fl) in posix_lock_to_flock()
2195 static void posix_lock_to_flock64(struct flock64 *flock, struct file_lock *fl) in posix_lock_to_flock64()
2211 struct file_lock *fl; in fcntl_getlk()
2283 int vfs_lock_file(struct file *filp, unsigned int cmd, struct file_lock *fl, struct file_lock *conf) in vfs_lock_file()
2294 struct file_lock *fl) in do_lock_file_wait()
2318 check_fmode_for_setlk(struct file_lock *fl) in check_fmode_for_setlk()
2338 struct file_lock *file_lock = locks_alloc_lock(); in fcntl_setlk() local
2343 if (file_lock == NULL) in fcntl_setlk()
2346 error = flock_to_posix_lock(filp, file_lock, flock); in fcntl_setlk()
2350 error = check_fmode_for_setlk(file_lock); in fcntl_setlk()
2365 file_lock->fl_flags |= FL_OFDLCK; in fcntl_setlk()
2366 file_lock->fl_owner = filp; in fcntl_setlk()
2374 file_lock->fl_flags |= FL_OFDLCK; in fcntl_setlk()
2375 file_lock->fl_owner = filp; in fcntl_setlk()
2378 file_lock->fl_flags |= FL_SLEEP; in fcntl_setlk()
2381 error = do_lock_file_wait(filp, cmd, file_lock); in fcntl_setlk()
2388 if (!error && file_lock->fl_type != F_UNLCK && in fcntl_setlk()
2389 !(file_lock->fl_flags & FL_OFDLCK)) { in fcntl_setlk()
2396 spin_lock(&files->file_lock); in fcntl_setlk()
2398 spin_unlock(&files->file_lock); in fcntl_setlk()
2400 file_lock->fl_type = F_UNLCK; in fcntl_setlk()
2401 error = do_lock_file_wait(filp, cmd, file_lock); in fcntl_setlk()
2407 trace_fcntl_setlk(inode, file_lock, error); in fcntl_setlk()
2408 locks_free_lock(file_lock); in fcntl_setlk()
2418 struct file_lock *fl; in fcntl_getlk64()
2462 struct file_lock *file_lock = locks_alloc_lock(); in fcntl_setlk64() local
2466 if (file_lock == NULL) in fcntl_setlk64()
2469 error = flock64_to_posix_lock(filp, file_lock, flock); in fcntl_setlk64()
2473 error = check_fmode_for_setlk(file_lock); in fcntl_setlk64()
2488 file_lock->fl_flags |= FL_OFDLCK; in fcntl_setlk64()
2489 file_lock->fl_owner = filp; in fcntl_setlk64()
2497 file_lock->fl_flags |= FL_OFDLCK; in fcntl_setlk64()
2498 file_lock->fl_owner = filp; in fcntl_setlk64()
2501 file_lock->fl_flags |= FL_SLEEP; in fcntl_setlk64()
2504 error = do_lock_file_wait(filp, cmd, file_lock); in fcntl_setlk64()
2511 if (!error && file_lock->fl_type != F_UNLCK && in fcntl_setlk64()
2512 !(file_lock->fl_flags & FL_OFDLCK)) { in fcntl_setlk64()
2519 spin_lock(&files->file_lock); in fcntl_setlk64()
2521 spin_unlock(&files->file_lock); in fcntl_setlk64()
2523 file_lock->fl_type = F_UNLCK; in fcntl_setlk64()
2524 error = do_lock_file_wait(filp, cmd, file_lock); in fcntl_setlk64()
2530 locks_free_lock(file_lock); in fcntl_setlk64()
2544 struct file_lock lock; in locks_remove_posix()
2579 struct file_lock fl; in locks_remove_flock()
2601 struct file_lock *fl, *tmp; in locks_remove_lease()
2652 int vfs_cancel_lock(struct file *filp, struct file_lock *fl) in vfs_cancel_lock()
2693 static void lock_get_status(struct seq_file *f, struct file_lock *fl, in lock_get_status()
2765 static struct file_lock *get_next_blocked_member(struct file_lock *node) in get_next_blocked_member()
2767 struct file_lock *tmp; in get_next_blocked_member()
2786 struct file_lock *cur, *tmp; in locks_show()
2790 cur = hlist_entry(v, struct file_lock, fl_link); in locks_show()
2809 struct file_lock, fl_blocked_member); in locks_show()
2831 struct file_lock *fl; in __show_fd_locks()
2915 sizeof(struct file_lock), 0, SLAB_PANIC, NULL); in filelock_init()