diff options
Diffstat (limited to 'fs/nfs/read.c')
| -rw-r--r-- | fs/nfs/read.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 6f866b8aa2d5..6ceb1d471f20 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
| @@ -140,7 +140,9 @@ static int nfs_readpage_sync(struct nfs_open_context *ctx, struct inode *inode, | |||
| 140 | if (rdata->res.eof != 0 || result == 0) | 140 | if (rdata->res.eof != 0 || result == 0) |
| 141 | break; | 141 | break; |
| 142 | } while (count); | 142 | } while (count); |
| 143 | NFS_FLAGS(inode) |= NFS_INO_INVALID_ATIME; | 143 | spin_lock(&inode->i_lock); |
| 144 | NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATIME; | ||
| 145 | spin_unlock(&inode->i_lock); | ||
| 144 | 146 | ||
| 145 | if (count) | 147 | if (count) |
| 146 | memclear_highpage_flush(page, rdata->args.pgbase, count); | 148 | memclear_highpage_flush(page, rdata->args.pgbase, count); |
| @@ -473,7 +475,9 @@ void nfs_readpage_result(struct rpc_task *task) | |||
| 473 | } | 475 | } |
| 474 | task->tk_status = -EIO; | 476 | task->tk_status = -EIO; |
| 475 | } | 477 | } |
| 476 | NFS_FLAGS(data->inode) |= NFS_INO_INVALID_ATIME; | 478 | spin_lock(&data->inode->i_lock); |
| 479 | NFS_I(data->inode)->cache_validity |= NFS_INO_INVALID_ATIME; | ||
| 480 | spin_unlock(&data->inode->i_lock); | ||
| 477 | data->complete(data, status); | 481 | data->complete(data, status); |
| 478 | } | 482 | } |
| 479 | 483 | ||
