On Tue, Mar 6, 2012 at 9:53 AM, Myklebust, Trond
<[email protected]> wrote:
> 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.....
yep, still had stupid development messages -- resent immediately!
-->Andy
>
>> }
>> 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
>
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html