Lines Matching defs:fl

98  * @fl: file lock structure
104 static int v9fs_file_lock(struct file *filp, int cmd, struct file_lock *fl)
108 p9_debug(P9_DEBUG_VFS, "filp: %p lock: %p\n", filp, fl);
110 if ((IS_SETLK(cmd) || IS_SETLKW(cmd)) && fl->c.flc_type != F_UNLCK) {
118 static int v9fs_file_do_lock(struct file *filp, int cmd, struct file_lock *fl)
129 BUG_ON((fl->c.flc_flags & FL_POSIX) != FL_POSIX);
131 res = locks_lock_file_wait(filp, fl);
138 switch (fl->c.flc_type) {
149 flock.start = fl->fl_start;
150 if (fl->fl_end == OFFSET_MAX)
153 flock.length = fl->fl_end - fl->fl_start + 1;
154 flock.proc_id = fl->c.flc_pid;
209 if (res < 0 && fl->c.flc_type != F_UNLCK) {
210 unsigned char type = fl->c.flc_type;
212 fl->c.flc_type = F_UNLCK;
214 locks_lock_file_wait(filp, fl);
215 fl->c.flc_type = type;
223 static int v9fs_file_getlock(struct file *filp, struct file_lock *fl)
232 posix_test_lock(filp, fl);
237 if (fl->c.flc_type != F_UNLCK)
243 glock.start = fl->fl_start;
244 if (fl->fl_end == OFFSET_MAX)
247 glock.length = fl->fl_end - fl->fl_start + 1;
248 glock.proc_id = fl->c.flc_pid;
257 fl->c.flc_type = F_RDLCK;
260 fl->c.flc_type = F_WRLCK;
263 fl->c.flc_type = F_UNLCK;
267 fl->fl_start = glock.start;
269 fl->fl_end = OFFSET_MAX;
271 fl->fl_end = glock.start + glock.length - 1;
272 fl->c.flc_pid = -glock.proc_id;
284 * @fl: file lock structure
288 static int v9fs_file_lock_dotl(struct file *filp, int cmd, struct file_lock *fl)
294 filp, cmd, fl, filp);
296 if ((IS_SETLK(cmd) || IS_SETLKW(cmd)) && fl->c.flc_type != F_UNLCK) {
302 ret = v9fs_file_do_lock(filp, cmd, fl);
304 ret = v9fs_file_getlock(filp, fl);
314 * @fl: file lock structure
319 struct file_lock *fl)
325 filp, cmd, fl, filp);
327 if (!(fl->c.flc_flags & FL_FLOCK))
330 if ((IS_SETLK(cmd) || IS_SETLKW(cmd)) && fl->c.flc_type != F_UNLCK) {
335 fl->c.flc_flags |= FL_POSIX;
336 fl->c.flc_flags ^= FL_FLOCK;
339 ret = v9fs_file_do_lock(filp, cmd, fl);