X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Fnfsd%2Fnfs4state.c;h=92968c94c6e6aa79ac19523216a8d9d9f9b1a8ab;hb=0dd395dc76071a06eea39839cc946c1241af3650;hp=568d5deacac07de573fe2d03085b1a6641089838;hpb=b648330a1d741d5df8a5076b2a0a2519c69c8f41;p=powerpc.git diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 568d5deaca..92968c94c6 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -2706,11 +2706,6 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock (long long) lock->lk_offset, (long long) lock->lk_length); - if (nfs4_in_grace() && !lock->lk_reclaim) - return nfserr_grace; - if (!nfs4_in_grace() && lock->lk_reclaim) - return nfserr_no_grace; - if (check_lock_length(lock->lk_offset, lock->lk_length)) return nfserr_inval; @@ -2785,6 +2780,13 @@ nfsd4_lock(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_lock goto out; } + status = nfserr_grace; + if (nfs4_in_grace() && !lock->lk_reclaim) + goto out; + status = nfserr_no_grace; + if (!nfs4_in_grace() && lock->lk_reclaim) + goto out; + locks_init_lock(&file_lock); switch (lock->lk_type) { case NFS4_READ_LT: