diff options
| author | Andreas Gruenbacher <agruenba@redhat.com> | 2025-07-08 19:13:32 +0200 |
|---|---|---|
| committer | Andreas Gruenbacher <agruenba@redhat.com> | 2025-09-12 12:02:02 +0200 |
| commit | 2309a01351e56446f43c89e200d643647d47e739 (patch) | |
| tree | a5b8697630d27c691b7cc9d0f51f8331b8e5db9b | |
| parent | gfs2: Remove space before newline (diff) | |
| download | linux-2309a01351e56446f43c89e200d643647d47e739.tar.gz linux-2309a01351e56446f43c89e200d643647d47e739.zip | |
gfs2: do_xmote cleanup
Check for asynchronous completion and clear the GLF_PENDING_REPLY flag
earlier in do_xmote(). This will make future changes more readable.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Reviewed-by: Andrew Price <anprice@redhat.com>
| -rw-r--r-- | fs/gfs2/glock.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 09af1fe12503..f1383e9445be 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -816,6 +816,12 @@ skip_inval: ret = ls->ls_ops->lm_lock(gl, target, lck_flags); spin_lock(&gl->gl_lockref.lock); + if (!ret) { + /* The operation will be completed asynchronously. */ + return; + } + clear_bit(GLF_PENDING_REPLY, &gl->gl_flags); + if (ret == -EINVAL && gl->gl_target == LM_ST_UNLOCKED && target == LM_ST_UNLOCKED && test_bit(DFL_UNMOUNT, &ls->ls_recover_flags)) { @@ -823,14 +829,10 @@ skip_inval: * The lockspace has been released and the lock has * been unlocked implicitly. */ - } else if (ret) { + } else { fs_err(sdp, "lm_lock ret %d\n", ret); target = gl->gl_state | LM_OUT_ERROR; - } else { - /* The operation will be completed asynchronously. */ - return; } - clear_bit(GLF_PENDING_REPLY, &gl->gl_flags); } /* Complete the operation now. */ |
