Lines Matching defs:flock
6778 static int smb2_set_flock_flags(struct file_lock *flock, int flags)
6787 flock->fl_type = F_RDLCK;
6788 flock->fl_flags |= FL_SLEEP;
6793 flock->fl_type = F_WRLCK;
6794 flock->fl_flags |= FL_SLEEP;
6800 flock->fl_type = F_RDLCK;
6806 flock->fl_type = F_WRLCK;
6810 flock->fl_type = F_UNLCK;
6818 static struct ksmbd_lock *smb2_lock_init(struct file_lock *flock,
6829 lock->fl = flock;
6830 lock->start = flock->fl_start;
6831 lock->end = flock->fl_end;
6845 struct file_lock *flock = (struct file_lock *)argv[0];
6847 ksmbd_vfs_posix_lock_unblock(flock);
6848 wake_up(&flock->fl_wait);
6869 struct file_lock *flock = NULL;
6906 flock = smb_flock_init(filp);
6907 if (!flock)
6910 cmd = smb2_set_flock_flags(flock, flags);
6917 locks_free_lock(flock);
6922 flock->fl_start = OFFSET_MAX;
6924 flock->fl_start = lock_start;
6927 if (lock_length > OFFSET_MAX - flock->fl_start)
6928 lock_length = OFFSET_MAX - flock->fl_start;
6930 flock->fl_end = flock->fl_start + lock_length;
6932 if (flock->fl_end < flock->fl_start) {
6935 flock->fl_end, flock->fl_start);
6937 locks_free_lock(flock);
6943 if (cmp_lock->fl->fl_start <= flock->fl_start &&
6944 cmp_lock->fl->fl_end >= flock->fl_end) {
6946 flock->fl_type != F_UNLCK) {
6949 locks_free_lock(flock);
6955 smb_lock = smb2_lock_init(flock, cmd, flags, &lock_list);
6958 locks_free_lock(flock);
7070 flock = smb_lock->fl;
7073 rc = vfs_lock_file(filp, smb_lock->cmd, flock, NULL);
7082 locks_free_lock(flock);
7097 argv[0] = flock;
7113 ksmbd_vfs_posix_lock_wait(flock);
7121 locks_free_lock(flock);