|
24 | 24 | import org.dcache.nfs.status.InvalException;
|
25 | 25 | import org.dcache.nfs.status.OpenModeException;
|
26 | 26 | import org.dcache.nfs.status.ServerFaultException;
|
| 27 | +import org.dcache.nfs.util.Opaque; |
27 | 28 | import org.dcache.nfs.v4.nlm.LockDeniedException;
|
28 | 29 | import org.dcache.nfs.v4.nlm.LockException;
|
| 30 | +import org.dcache.nfs.v4.nlm.LockManager; |
29 | 31 | import org.dcache.nfs.v4.nlm.NlmLock;
|
30 | 32 | import org.dcache.nfs.v4.xdr.LOCK4denied;
|
31 | 33 | import org.dcache.nfs.v4.xdr.LOCK4resok;
|
@@ -118,12 +120,12 @@ public void process(CompoundContext context, nfs_resop4 result) throws ChimeraNF
|
118 | 120 |
|
119 | 121 | NlmLock lock = new NlmLock(lockOwner, _args.oplock.locktype, _args.oplock.offset.value,
|
120 | 122 | _args.oplock.length.value);
|
121 |
| - context.getLm().lock(inode.getLockKey(), lock); |
| 123 | + Opaque lockKey = inode.getLockKey(); |
| 124 | + LockManager lm = context.getLm(); |
| 125 | + lm.lock(lockKey, lock); |
122 | 126 |
|
123 | 127 | // ensure, that on close locks will be released
|
124 |
| - lock_state.addDisposeListener(s -> { |
125 |
| - context.getLm().unlockIfExists(inode.getLockKey(), lock); |
126 |
| - }); |
| 128 | + lock_state.addDisposeListener(s -> lm.unlockIfExists(lockKey, lock)); |
127 | 129 |
|
128 | 130 | // FIXME: we might run into race condition, thus updating sedid must be fenced!
|
129 | 131 | lock_state.bumpSeqid();
|
|
0 commit comments