Lines Matching refs:flock

1298  * style). If such a lock exists, update the flock structure with its
1299 * properties. Otherwise, set the flock type to F_UNLCK if we can cache brlocks
1305 __u8 type, struct file_lock *flock)
1316 flock->fl_flags, &conf_lock,
1319 flock->fl_start = conf_lock->offset;
1320 flock->fl_end = conf_lock->offset + conf_lock->length - 1;
1321 flock->fl_pid = conf_lock->pid;
1323 flock->fl_type = F_RDLCK;
1325 flock->fl_type = F_WRLCK;
1329 flock->fl_type = F_UNLCK;
1395 * style). If such a lock exists, update the flock structure with its
1396 * properties. Otherwise, set the flock type to F_UNLCK if we can cache brlocks
1401 cifs_posix_lock_test(struct file *file, struct file_lock *flock)
1405 unsigned char saved_type = flock->fl_type;
1407 if ((flock->fl_flags & FL_POSIX) == 0)
1411 posix_test_lock(file, flock);
1413 if (flock->fl_type == F_UNLCK && !cinode->can_cache_brlcks) {
1414 flock->fl_type = saved_type;
1430 cifs_posix_lock_set(struct file *file, struct file_lock *flock)
1435 if ((flock->fl_flags & FL_POSIX) == 0)
1444 rc = posix_lock_file(file, flock, NULL);
1548 struct file_lock *flock;
1585 list_for_each_entry(flock, &flctx->flc_posix, fl_list) {
1594 length = cifs_flock_len(flock);
1595 if (flock->fl_type == F_RDLCK || flock->fl_type == F_SHLCK)
1600 lck->pid = hash_lockowner(flock->fl_owner);
1604 lck->offset = flock->fl_start;
1664 cifs_read_flock(struct file_lock *flock, __u32 *type, int *lock, int *unlock,
1667 if (flock->fl_flags & FL_POSIX)
1669 if (flock->fl_flags & FL_FLOCK)
1671 if (flock->fl_flags & FL_SLEEP) {
1675 if (flock->fl_flags & FL_ACCESS)
1677 if (flock->fl_flags & FL_LEASE)
1679 if (flock->fl_flags &
1682 cifs_dbg(FYI, "Unknown lock flags 0x%x\n", flock->fl_flags);
1685 if (flock->fl_type == F_WRLCK) {
1689 } else if (flock->fl_type == F_UNLCK) {
1694 } else if (flock->fl_type == F_RDLCK) {
1698 } else if (flock->fl_type == F_EXLCK) {
1702 } else if (flock->fl_type == F_SHLCK) {
1711 cifs_getlk(struct file *file, struct file_lock *flock, __u32 type,
1715 __u64 length = cifs_flock_len(flock);
1725 rc = cifs_posix_lock_test(file, flock);
1734 hash_lockowner(flock->fl_owner),
1735 flock->fl_start, length, flock,
1741 rc = cifs_lock_test(cfile, flock->fl_start, length, type, flock);
1746 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length, type,
1749 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1751 flock->fl_type = F_UNLCK;
1759 flock->fl_type = F_WRLCK;
1765 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1769 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1771 flock->fl_type = F_RDLCK;
1776 flock->fl_type = F_WRLCK;
1802 cifs_unlock_range(struct cifsFileInfo *cfile, struct file_lock *flock,
1816 __u64 length = cifs_flock_len(flock);
1844 if (flock->fl_start > li->offset ||
1845 (flock->fl_start + length) <
1916 cifs_setlk(struct file *file, struct file_lock *flock, __u32 type,
1921 __u64 length = cifs_flock_len(flock);
1931 rc = cifs_posix_lock_set(file, flock);
1944 hash_lockowner(flock->fl_owner),
1945 flock->fl_start, length,
1953 lock = cifs_lock_init(flock->fl_start, length, type,
1954 flock->fl_flags);
1981 rc = server->ops->mand_lock(xid, cfile, flock->fl_start, length,
1990 rc = server->ops->mand_unlock_range(cfile, flock, xid);
1993 if ((flock->fl_flags & FL_POSIX) || (flock->fl_flags & FL_FLOCK)) {
2002 if (!(flock->fl_flags & FL_CLOSE))
2005 rc = locks_lock_file_wait(file, flock);
2059 int cifs_lock(struct file *file, int cmd, struct file_lock *flock)
2074 flock->fl_flags, flock->fl_type, (long long)flock->fl_start,
2075 (long long)flock->fl_end);
2080 cifs_read_flock(flock, &type, &lock, &unlock, &wait_flag,
2094 rc = cifs_getlk(file, flock, type, wait_flag, posix_lck, xid);
2108 rc = cifs_setlk(file, flock, type, wait_flag, posix_lck, lock, unlock,