diff options
Diffstat (limited to 'fs/nfs/inode.c')
| -rw-r--r-- | fs/nfs/inode.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 6922469d6fc5..d4eadeea128e 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
| @@ -877,12 +877,10 @@ static int nfs_wait_on_inode(struct inode *inode) | |||
| 877 | sigset_t oldmask; | 877 | sigset_t oldmask; |
| 878 | int error; | 878 | int error; |
| 879 | 879 | ||
| 880 | atomic_inc(&inode->i_count); | ||
| 881 | rpc_clnt_sigmask(clnt, &oldmask); | 880 | rpc_clnt_sigmask(clnt, &oldmask); |
| 882 | error = wait_on_bit_lock(&nfsi->flags, NFS_INO_REVALIDATING, | 881 | error = wait_on_bit_lock(&nfsi->flags, NFS_INO_REVALIDATING, |
| 883 | nfs_wait_schedule, TASK_INTERRUPTIBLE); | 882 | nfs_wait_schedule, TASK_INTERRUPTIBLE); |
| 884 | rpc_clnt_sigunmask(clnt, &oldmask); | 883 | rpc_clnt_sigunmask(clnt, &oldmask); |
| 885 | iput(inode); | ||
| 886 | 884 | ||
| 887 | return error; | 885 | return error; |
| 888 | } | 886 | } |
| @@ -1226,10 +1224,6 @@ int nfs_refresh_inode(struct inode *inode, struct nfs_fattr *fattr) | |||
| 1226 | loff_t cur_size, new_isize; | 1224 | loff_t cur_size, new_isize; |
| 1227 | int data_unstable; | 1225 | int data_unstable; |
| 1228 | 1226 | ||
| 1229 | /* Do we hold a delegation? */ | ||
| 1230 | if (nfs_have_delegation(inode, FMODE_READ)) | ||
| 1231 | return 0; | ||
| 1232 | |||
| 1233 | spin_lock(&inode->i_lock); | 1227 | spin_lock(&inode->i_lock); |
| 1234 | 1228 | ||
| 1235 | /* Are we in the process of updating data on the server? */ | 1229 | /* Are we in the process of updating data on the server? */ |
| @@ -1350,7 +1344,8 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr, unsign | |||
| 1350 | nfsi->read_cache_jiffies = fattr->timestamp; | 1344 | nfsi->read_cache_jiffies = fattr->timestamp; |
| 1351 | 1345 | ||
| 1352 | /* Are we racing with known updates of the metadata on the server? */ | 1346 | /* Are we racing with known updates of the metadata on the server? */ |
| 1353 | data_unstable = ! nfs_verify_change_attribute(inode, verifier); | 1347 | data_unstable = ! (nfs_verify_change_attribute(inode, verifier) || |
| 1348 | (nfsi->cache_validity & NFS_INO_REVAL_PAGECACHE)); | ||
| 1354 | 1349 | ||
| 1355 | /* Check if our cached file size is stale */ | 1350 | /* Check if our cached file size is stale */ |
| 1356 | new_isize = nfs_size_to_loff_t(fattr->size); | 1351 | new_isize = nfs_size_to_loff_t(fattr->size); |
