Lines Matching refs:flock
6721 static int smb2_set_flock_flags(struct file_lock *flock, int flags) in smb2_set_flock_flags() argument
6730 flock->fl_type = F_RDLCK; in smb2_set_flock_flags()
6731 flock->fl_flags |= FL_SLEEP; in smb2_set_flock_flags()
6736 flock->fl_type = F_WRLCK; in smb2_set_flock_flags()
6737 flock->fl_flags |= FL_SLEEP; in smb2_set_flock_flags()
6743 flock->fl_type = F_RDLCK; in smb2_set_flock_flags()
6749 flock->fl_type = F_WRLCK; in smb2_set_flock_flags()
6753 flock->fl_type = F_UNLCK; in smb2_set_flock_flags()
6761 static struct ksmbd_lock *smb2_lock_init(struct file_lock *flock, in smb2_lock_init() argument
6772 lock->fl = flock; in smb2_lock_init()
6773 lock->start = flock->fl_start; in smb2_lock_init()
6774 lock->end = flock->fl_end; in smb2_lock_init()
6788 struct file_lock *flock = (struct file_lock *)argv[0]; in smb2_remove_blocked_lock() local
6790 ksmbd_vfs_posix_lock_unblock(flock); in smb2_remove_blocked_lock()
6791 wake_up(&flock->fl_wait); in smb2_remove_blocked_lock()
6812 struct file_lock *flock = NULL; in smb2_lock() local
6847 flock = smb_flock_init(filp); in smb2_lock()
6848 if (!flock) in smb2_lock()
6851 cmd = smb2_set_flock_flags(flock, flags); in smb2_lock()
6862 flock->fl_start = OFFSET_MAX; in smb2_lock()
6864 flock->fl_start = lock_start; in smb2_lock()
6867 if (lock_length > OFFSET_MAX - flock->fl_start) in smb2_lock()
6868 lock_length = OFFSET_MAX - flock->fl_start; in smb2_lock()
6870 flock->fl_end = flock->fl_start + lock_length; in smb2_lock()
6872 if (flock->fl_end < flock->fl_start) { in smb2_lock()
6875 flock->fl_end, flock->fl_start); in smb2_lock()
6882 if (cmp_lock->fl->fl_start <= flock->fl_start && in smb2_lock()
6883 cmp_lock->fl->fl_end >= flock->fl_end) { in smb2_lock()
6885 flock->fl_type != F_UNLCK) { in smb2_lock()
6893 smb_lock = smb2_lock_init(flock, cmd, flags, &lock_list); in smb2_lock()
7007 flock = smb_lock->fl; in smb2_lock()
7010 rc = vfs_lock_file(filp, smb_lock->cmd, flock, NULL); in smb2_lock()
7019 locks_free_lock(flock); in smb2_lock()
7038 argv[0] = flock; in smb2_lock()
7053 ksmbd_vfs_posix_lock_wait(flock); in smb2_lock()
7060 locks_free_lock(flock); in smb2_lock()