mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[PATCH] NFS: Fix the file size revalidation
Instead of looking at whether or not the file is open for writes before we accept to update the length using the server value, we should rather be looking at whether or not we are currently caching any writes. Failure to do so means in particular that we're not updating the file length correctly after obtaining a POSIX or BSD lock. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
08e9eac42e
commit
951a143b3f
4 changed files with 21 additions and 55 deletions
|
@ -220,7 +220,7 @@ static int nfs_writepage_sync(struct nfs_open_context *ctx, struct inode *inode,
|
|||
ClearPageError(page);
|
||||
|
||||
io_error:
|
||||
nfs_end_data_update_defer(inode);
|
||||
nfs_end_data_update(inode);
|
||||
nfs_writedata_free(wdata);
|
||||
return written ? written : result;
|
||||
}
|
||||
|
@ -401,7 +401,7 @@ static void nfs_inode_remove_request(struct nfs_page *req)
|
|||
nfsi->npages--;
|
||||
if (!nfsi->npages) {
|
||||
spin_unlock(&nfsi->req_lock);
|
||||
nfs_end_data_update_defer(inode);
|
||||
nfs_end_data_update(inode);
|
||||
iput(inode);
|
||||
} else
|
||||
spin_unlock(&nfsi->req_lock);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue