#ifdef AFS_LINUX24_ENV
if ((code == 0 || flp->fl_type == F_UNLCK) &&
(cmd == F_SETLK || cmd == F_SETLKW)) {
- struct file_lock flp2;
- flp2 = *flp;
#ifdef AFS_LINUX26_ENV
- flp2.fl_flags &=~ FL_SLEEP;
+ flp->fl_flags &=~ FL_SLEEP;
+ code = posix_lock_file(fp, flp);
+#else
+ code = posix_lock_file(fp, flp, 0);
#endif
- code = posix_lock_file(fp, &flp2);
if (code && flp->fl_type != F_UNLCK) {
struct AFS_FLOCK flock2;
flock2 = flock;
if ((code == 0 || flp->fl_type == F_UNLCK) &&
(cmd == F_SETLK || cmd == F_SETLKW)) {
- struct file_lock flp2;
- flp2 = *flp;
- flp2.fl_flags &=~ FL_SLEEP;
- code = flock_lock_file_wait(fp, &flp2);
- if (code && flp->fl_type != F_UNLCK) {
- struct AFS_FLOCK flock2;
- flock2 = flock;
- flock2.l_type = F_UNLCK;
- AFS_GLOCK();
- afs_lockctl(vcp, &flock2, F_SETLK, credp);
- AFS_GUNLOCK();
- }
+ flp->fl_flags &=~ FL_SLEEP;
+ code = flock_lock_file_wait(fp, flp);
+ if (code && flp->fl_type != F_UNLCK) {
+ struct AFS_FLOCK flock2;
+ flock2 = flock;
+ flock2.l_type = F_UNLCK;
+ AFS_GLOCK();
+ afs_lockctl(vcp, &flock2, F_SETLK, credp);
+ AFS_GUNLOCK();
+ }
}
/* Convert flock back to Linux's file_lock */
flp->fl_type = flock.l_type;