mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
NFSv4: Split out NFS v4.2 copy completion functions
The convention in the rest of the code is to have a separate function for anything that might be ifdef-ed out. Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
000d3f9566
commit
80f4236886
@ -1549,6 +1549,31 @@ out:
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_NFS_V4_2
|
||||||
|
static void nfs42_complete_copies(struct nfs4_state_owner *sp, struct nfs4_state *state)
|
||||||
|
{
|
||||||
|
struct nfs4_copy_state *copy;
|
||||||
|
|
||||||
|
if (!test_bit(NFS_CLNT_DST_SSC_COPY_STATE, &state->flags))
|
||||||
|
return;
|
||||||
|
|
||||||
|
spin_lock(&sp->so_server->nfs_client->cl_lock);
|
||||||
|
list_for_each_entry(copy, &sp->so_server->ss_copies, copies) {
|
||||||
|
if (nfs4_stateid_match_other(&state->stateid, ©->parent_state->stateid))
|
||||||
|
continue;
|
||||||
|
copy->flags = 1;
|
||||||
|
complete(©->completion);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
spin_unlock(&sp->so_server->nfs_client->cl_lock);
|
||||||
|
}
|
||||||
|
#else /* !CONFIG_NFS_V4_2 */
|
||||||
|
static inline void nfs42_complete_copies(struct nfs4_state_owner *sp,
|
||||||
|
struct nfs4_state *state)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* CONFIG_NFS_V4_2 */
|
||||||
|
|
||||||
static int __nfs4_reclaim_open_state(struct nfs4_state_owner *sp, struct nfs4_state *state,
|
static int __nfs4_reclaim_open_state(struct nfs4_state_owner *sp, struct nfs4_state *state,
|
||||||
const struct nfs4_state_recovery_ops *ops)
|
const struct nfs4_state_recovery_ops *ops)
|
||||||
{
|
{
|
||||||
@ -1572,21 +1597,7 @@ static int __nfs4_reclaim_open_state(struct nfs4_state_owner *sp, struct nfs4_st
|
|||||||
spin_unlock(&state->state_lock);
|
spin_unlock(&state->state_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_NFS_V4_2
|
nfs42_complete_copies(sp, state);
|
||||||
if (test_bit(NFS_CLNT_DST_SSC_COPY_STATE, &state->flags)) {
|
|
||||||
struct nfs4_copy_state *copy;
|
|
||||||
spin_lock(&sp->so_server->nfs_client->cl_lock);
|
|
||||||
list_for_each_entry(copy, &sp->so_server->ss_copies, copies) {
|
|
||||||
if (nfs4_stateid_match_other(&state->stateid, ©->parent_state->stateid))
|
|
||||||
continue;
|
|
||||||
copy->flags = 1;
|
|
||||||
complete(©->completion);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
spin_unlock(&sp->so_server->nfs_client->cl_lock);
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_NFS_V4_2 */
|
|
||||||
|
|
||||||
clear_bit(NFS_STATE_RECLAIM_NOGRACE, &state->flags);
|
clear_bit(NFS_STATE_RECLAIM_NOGRACE, &state->flags);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user