taglinefilesource code
caller26fs/locks.cstatic int lock_it(struct file *filp, struct file_lock *caller);
caller27fs/locks.cstatic int unlock_it(struct file *filp, struct file_lock *caller);
caller246fs/locks.cstatic int lock_it(struct file *filp, struct file_lock *caller)
caller258fs/locks.cif ((caller = alloc_lock(filp, caller)) == NULL)
caller266fs/locks.cif (caller->fl_owner != fl->fl_owner)
caller268fs/locks.cif (caller == fl)
caller270fs/locks.cif (!overlap(caller, fl)) {
caller274fs/locks.cif (caller->fl_type != fl->fl_type)
caller276fs/locks.cif (caller->fl_end + 1 == fl->fl_start) {
caller277fs/locks.cfl->fl_start = caller->fl_start;
caller278fs/locks.cfree_lock(filp, caller);
caller279fs/locks.ccaller = fl;
caller281fs/locks.c} else if (caller->fl_start - 1 == fl->fl_end) {
caller282fs/locks.cfl->fl_end = caller->fl_end;
caller283fs/locks.cfree_lock(filp, caller);
caller284fs/locks.ccaller = fl;
caller293fs/locks.cif (caller->fl_type != fl->fl_type) {
caller294fs/locks.cif (caller->fl_start > fl->fl_start && caller->fl_end < fl->fl_end) {
caller301fs/locks.cfree_lock(filp, caller);
caller304fs/locks.cfl->fl_end = caller->fl_start - 1;
caller305fs/locks.cnew->fl_start = caller->fl_end + 1;
caller308fs/locks.cif (caller->fl_start <= fl->fl_start && caller->fl_end >= fl->fl_end) {
caller315fs/locks.cif (caller->fl_end < fl->fl_end) {
caller316fs/locks.cfl->fl_start = caller->fl_end + 1;
caller318fs/locks.c} else if (caller->fl_start > fl->fl_start) {
caller319fs/locks.cfl->fl_end = caller->fl_start - 1;
caller323fs/locks.cfree_lock(filp, caller);
caller329fs/locks.cif (caller->fl_start < fl->fl_start) {
caller330fs/locks.cfl->fl_start = caller->fl_start;
caller333fs/locks.cif (caller->fl_end > fl->fl_end) {
caller334fs/locks.cfl->fl_end = caller->fl_end;
caller337fs/locks.cfree_lock(filp, caller);
caller338fs/locks.ccaller = fl;
caller359fs/locks.cstatic int unlock_it(struct file *filp, struct file_lock *caller)
caller365fs/locks.cif (caller->fl_owner != fl->fl_owner || !overlap(caller, fl)) {
caller370fs/locks.cif (caller->fl_start > fl->fl_start && caller->fl_end < fl->fl_end) {
caller377fs/locks.cfl->fl_end = caller->fl_start - 1;
caller378fs/locks.cnext->fl_start = caller->fl_end + 1;
caller399fs/locks.cif (caller->fl_start <= fl->fl_start && caller->fl_end >= fl->fl_end) {
caller401fs/locks.c} else if (caller->fl_start > fl->fl_start) {
caller402fs/locks.cfl->fl_end = caller->fl_start - 1;
caller405fs/locks.cfl->fl_start = caller->fl_end + 1;
caller407fs/locks.cif (caller->fl_start >= fl->fl_start && caller->fl_end <= fl->fl_end)