• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/afs/

Lines Matching defs:fl

18 static void afs_fl_copy_lock(struct file_lock *new, struct file_lock *fl);
19 static void afs_fl_release_private(struct file_lock *fl);
84 static void afs_grant_locks(struct afs_vnode *vnode, struct file_lock *fl)
88 list_move_tail(&fl->fl_u.afs.link, &vnode->granted_locks);
89 if (fl->fl_type == F_RDLCK) {
111 struct file_lock *fl;
145 fl = list_entry(vnode->granted_locks.next,
147 key = key_get(fl->fl_file->private_data);
179 fl = list_entry(vnode->pending_locks.next,
181 key = key_get(fl->fl_file->private_data);
182 type = (fl->fl_type == F_RDLCK) ?
204 struct file_lock, fl_u.afs.link) == fl) {
205 fl->fl_u.afs.state = ret;
207 afs_grant_locks(vnode, fl);
209 list_del_init(&fl->fl_u.afs.link);
210 wake_up(&fl->fl_wait);
254 static int afs_do_setlk(struct file *file, struct file_lock *fl)
261 _enter("{%x:%u},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type);
264 if (fl->fl_start != 0 || fl->fl_end != OFFSET_MAX)
271 fl->fl_ops = &afs_lock_ops;
272 INIT_LIST_HEAD(&fl->fl_u.afs.link);
273 fl->fl_u.afs.state = AFS_LOCK_PENDING;
275 type = (fl->fl_type == F_RDLCK) ? AFS_LOCK_READ : AFS_LOCK_WRITE;
285 if (vnode->status.lock_count != 0 && !(fl->fl_flags & FL_SLEEP)) {
314 list_add_tail(&fl->fl_u.afs.link, &vnode->pending_locks);
329 &fl->fl_u.afs.link);
333 list_del_init(&fl->fl_u.afs.link);
341 list_add_tail(&fl->fl_u.afs.link, &vnode->pending_locks);
343 if (!(fl->fl_flags & FL_SLEEP)) {
353 ret = wait_event_interruptible(fl->fl_wait,
354 fl->fl_u.afs.state <= AFS_LOCK_GRANTED);
355 if (fl->fl_u.afs.state <= AFS_LOCK_GRANTED) {
356 ret = fl->fl_u.afs.state;
369 if (fl->fl_u.afs.state <= AFS_LOCK_GRANTED) {
370 ret = fl->fl_u.afs.state;
383 vnode->pending_locks.next == &fl->fl_u.afs.link) {
384 if (vnode->pending_locks.prev != &fl->fl_u.afs.link) {
386 list_del_init(&fl->fl_u.afs.link);
390 list_del_init(&fl->fl_u.afs.link);
406 fl->fl_u.afs.state = AFS_LOCK_GRANTED;
407 list_move_tail(&fl->fl_u.afs.link, &vnode->granted_locks);
413 ret = posix_lock_file(file, fl, NULL);
432 list_del_init(&fl->fl_u.afs.link);
441 static int afs_do_unlk(struct file *file, struct file_lock *fl)
447 _enter("{%x:%u},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type);
450 if (fl->fl_start != 0 || fl->fl_end != OFFSET_MAX)
453 fl->fl_ops = &afs_lock_ops;
454 INIT_LIST_HEAD(&fl->fl_u.afs.link);
455 fl->fl_u.afs.state = AFS_LOCK_PENDING;
458 ret = posix_lock_file(file, fl, NULL);
476 static int afs_do_getlk(struct file *file, struct file_lock *fl)
484 fl->fl_type = F_UNLCK;
490 posix_test_lock(file, fl);
491 if (fl->fl_type == F_UNLCK) {
499 fl->fl_type = F_RDLCK;
501 fl->fl_type = F_WRLCK;
502 fl->fl_start = 0;
503 fl->fl_end = OFFSET_MAX;
509 _leave(" = %d [%hd]", ret, fl->fl_type);
516 int afs_lock(struct file *file, int cmd, struct file_lock *fl)
520 _enter("{%x:%u},%d,{t=%x,fl=%x,r=%Ld:%Ld}",
522 fl->fl_type, fl->fl_flags,
523 (long long) fl->fl_start, (long long) fl->fl_end);
526 if (__mandatory_lock(&vnode->vfs_inode) && fl->fl_type != F_UNLCK)
530 return afs_do_getlk(file, fl);
531 if (fl->fl_type == F_UNLCK)
532 return afs_do_unlk(file, fl);
533 return afs_do_setlk(file, fl);
539 int afs_flock(struct file *file, int cmd, struct file_lock *fl)
543 _enter("{%x:%u},%d,{t=%x,fl=%x}",
545 fl->fl_type, fl->fl_flags);
554 if (!(fl->fl_flags & FL_FLOCK))
558 fl->fl_owner = (fl_owner_t) file;
559 fl->fl_start = 0;
560 fl->fl_end = OFFSET_MAX;
562 if (fl->fl_type == F_UNLCK)
563 return afs_do_unlk(file, fl);
564 return afs_do_setlk(file, fl);
573 static void afs_fl_copy_lock(struct file_lock *new, struct file_lock *fl)
577 list_add(&new->fl_u.afs.link, &fl->fl_u.afs.link);
584 static void afs_fl_release_private(struct file_lock *fl)
588 list_del_init(&fl->fl_u.afs.link);