tag | line | file | source code |
caller | 26 | fs/locks.c | static int lock_it(struct file *filp, struct file_lock *caller); |
caller | 27 | fs/locks.c | static int unlock_it(struct file *filp, struct file_lock *caller); |
caller | 246 | fs/locks.c | static int lock_it(struct file *filp, struct file_lock *caller) |
caller | 258 | fs/locks.c | if ((caller = alloc_lock(filp, caller)) == NULL) |
caller | 266 | fs/locks.c | if (caller->fl_owner != fl->fl_owner) |
caller | 268 | fs/locks.c | if (caller == fl) |
caller | 270 | fs/locks.c | if (!overlap(caller, fl)) { |
caller | 274 | fs/locks.c | if (caller->fl_type != fl->fl_type) |
caller | 276 | fs/locks.c | if (caller->fl_end + 1 == fl->fl_start) { |
caller | 277 | fs/locks.c | fl->fl_start = caller->fl_start; |
caller | 278 | fs/locks.c | free_lock(filp, caller); |
caller | 279 | fs/locks.c | caller = fl; |
caller | 281 | fs/locks.c | } else if (caller->fl_start - 1 == fl->fl_end) { |
caller | 282 | fs/locks.c | fl->fl_end = caller->fl_end; |
caller | 283 | fs/locks.c | free_lock(filp, caller); |
caller | 284 | fs/locks.c | caller = fl; |
caller | 293 | fs/locks.c | if (caller->fl_type != fl->fl_type) { |
caller | 294 | fs/locks.c | if (caller->fl_start > fl->fl_start && caller->fl_end < fl->fl_end) { |
caller | 301 | fs/locks.c | free_lock(filp, caller); |
caller | 304 | fs/locks.c | fl->fl_end = caller->fl_start - 1; |
caller | 305 | fs/locks.c | new->fl_start = caller->fl_end + 1; |
caller | 308 | fs/locks.c | if (caller->fl_start <= fl->fl_start && caller->fl_end >= fl->fl_end) { |
caller | 315 | fs/locks.c | if (caller->fl_end < fl->fl_end) { |
caller | 316 | fs/locks.c | fl->fl_start = caller->fl_end + 1; |
caller | 318 | fs/locks.c | } else if (caller->fl_start > fl->fl_start) { |
caller | 319 | fs/locks.c | fl->fl_end = caller->fl_start - 1; |
caller | 323 | fs/locks.c | free_lock(filp, caller); |
caller | 329 | fs/locks.c | if (caller->fl_start < fl->fl_start) { |
caller | 330 | fs/locks.c | fl->fl_start = caller->fl_start; |
caller | 333 | fs/locks.c | if (caller->fl_end > fl->fl_end) { |
caller | 334 | fs/locks.c | fl->fl_end = caller->fl_end; |
caller | 337 | fs/locks.c | free_lock(filp, caller); |
caller | 338 | fs/locks.c | caller = fl; |
caller | 359 | fs/locks.c | static int unlock_it(struct file *filp, struct file_lock *caller) |
caller | 365 | fs/locks.c | if (caller->fl_owner != fl->fl_owner || !overlap(caller, fl)) { |
caller | 370 | fs/locks.c | if (caller->fl_start > fl->fl_start && caller->fl_end < fl->fl_end) { |
caller | 377 | fs/locks.c | fl->fl_end = caller->fl_start - 1; |
caller | 378 | fs/locks.c | next->fl_start = caller->fl_end + 1; |
caller | 399 | fs/locks.c | if (caller->fl_start <= fl->fl_start && caller->fl_end >= fl->fl_end) { |
caller | 401 | fs/locks.c | } else if (caller->fl_start > fl->fl_start) { |
caller | 402 | fs/locks.c | fl->fl_end = caller->fl_start - 1; |
caller | 405 | fs/locks.c | fl->fl_start = caller->fl_end + 1; |
caller | 407 | fs/locks.c | if (caller->fl_start >= fl->fl_start && caller->fl_end <= fl->fl_end) |