[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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user