diff options
author | Kinglong Mee <kinglongmee@gmail.com> | 2015-07-07 02:12:03 (GMT) |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2015-07-20 18:58:46 (GMT) |
commit | d8398fc11762d162b2e7b0f368278449899cfbdf (patch) | |
tree | 3457fc72a7b8db8d1d100e40784c21a7ef7ff02a | |
parent | 28e51af7c608f661a728db9d47b33c54096fdc59 (diff) | |
download | linux-d8398fc11762d162b2e7b0f368278449899cfbdf.tar.xz |
nfsd: Set lc_size_chg before ops->proc_layoutcommit
After proc_layoutcommit success, i_size_read(inode) always >= new_size.
Just set lc_size_chg before proc_layoutcommit, if proc_layoutcommit
failed, nfsd will skip the lc_size_chg, so it's no harm.
Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
-rw-r--r-- | fs/nfsd/nfs4proc.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 90cfda7..d112c8a 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c @@ -1364,10 +1364,6 @@ nfsd4_layoutcommit(struct svc_rqst *rqstp, goto out; } - nfserr = ops->proc_layoutcommit(inode, lcp); - if (nfserr) - goto out_put_stid; - if (new_size > i_size_read(inode)) { lcp->lc_size_chg = 1; lcp->lc_newsize = new_size; @@ -1375,7 +1371,7 @@ nfsd4_layoutcommit(struct svc_rqst *rqstp, lcp->lc_size_chg = 0; } -out_put_stid: + nfserr = ops->proc_layoutcommit(inode, lcp); nfs4_put_stid(&ls->ls_stid); out: return nfserr; |