On Tue, 2012-03-06 at 09:46 -0500, [email protected] wrote:
> From: Andy Adamson <[email protected]>
> 
> nfs41_open_expired() will test the delegation stateid based on
> NFS_DELEGATED_STATE being set. If the stateid is bad, nfs4_open_recover
> will clear the NFS_DELEGATED_STATE bit recovering the delegation.
> 
> Signed-off-by: Andy Adamson <[email protected]>
> Cc: [email protected]
> ---
>  fs/nfs/nfs4state.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
> index 7bd9822..44fcd60 100644
> --- a/fs/nfs/nfs4state.c
> +++ b/fs/nfs/nfs4state.c
> @@ -696,7 +696,10 @@ static void __nfs4_close(struct nfs4_state *state,
>                       call_close |= test_bit(NFS_O_RDWR_STATE, &state->flags);
>               }
>               if (newstate == 0)
> +{
> +printk("%s CLEAR NFS_DELEGATED_STATE state %p\n", __func__, state);
>                       clear_bit(NFS_DELEGATED_STATE, &state->flags);
> +}\

Ewww.....

>       }
>       nfs4_state_set_mode_locked(state, newstate);
>       spin_unlock(&owner->so_lock);
> @@ -1097,7 +1100,7 @@ void nfs4_schedule_stateid_recovery(const struct 
> nfs_server *server, struct nfs4
>  {
>       struct nfs_client *clp = server->nfs_client;
>  
> -     if (test_and_clear_bit(NFS_DELEGATED_STATE, &state->flags))
> +     if (test_bit(NFS_DELEGATED_STATE, &state->flags))
>               nfs_async_inode_return_delegation(state->inode, 
> &state->stateid);
>       nfs4_state_mark_reclaim_nograce(clp, state);
>       nfs4_schedule_state_manager(clp);

Actually, the latest incarnation of the patch 2/3 removes the
async_inode_return_delegation from nfs4_schedule_stateid_recovery. We
don't need to return the delegation if all the stateids have been marked
for return, and we've thrown out the delegation itself.

Let's not hurry this into the stable tree yet...

-- 
Trond Myklebust
Linux NFS client maintainer

NetApp
[email protected]
www.netapp.com

N�����r��y����b�X��ǧv�^�)޺{.n�+������z)����w*jg��������ݢj/���z�ޖ��2�ޙ����&�)ߡ�a�����G���h��j:+v���w��٥

Reply via email to