diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:45:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:45:45 -0500 |
commit | f57fa1d6a6b3414e853d3d17e339ac48816e4406 (patch) | |
tree | e1d3acdb12f902e916765915a4f9a65cbae909cc /fs/nfs/inode.c | |
parent | 6094c85a935f7eadb4c607c6dc6d86c0a9f09a4b (diff) | |
parent | 08cc36cbd1ee7d86422713bb21551eed1326b894 (diff) |
Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (70 commits)
fs/nfs/nfs4proc.c: make nfs4_map_errors() static
rpc: add service field to new upcall
rpc: add target field to new upcall
nfsd: support callbacks with gss flavors
rpc: allow gss callbacks to client
rpc: pass target name down to rpc level on callbacks
nfsd: pass client principal name in rsc downcall
rpc: implement new upcall
rpc: store pointer to pipe inode in gss upcall message
rpc: use count of pipe openers to wait for first open
rpc: track number of users of the gss upcall pipe
rpc: call release_pipe only on last close
rpc: add an rpc_pipe_open method
rpc: minor gss_alloc_msg cleanup
rpc: factor out warning code from gss_pipe_destroy_msg
rpc: remove unnecessary assignment
NFS: remove unused status from encode routines
NFS: increment number of operations in each encode routine
NFS: fix comment placement in nfs4xdr.c
NFS: fix tabs in nfs4xdr.c
...
Diffstat (limited to 'fs/nfs/inode.c')
-rw-r--r-- | fs/nfs/inode.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index d22eb383e1cf..0c381686171e 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -592,7 +592,7 @@ static void nfs_file_set_open_context(struct file *filp, struct nfs_open_context | |||
592 | /* | 592 | /* |
593 | * Given an inode, search for an open context with the desired characteristics | 593 | * Given an inode, search for an open context with the desired characteristics |
594 | */ | 594 | */ |
595 | struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode) | 595 | struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, fmode_t mode) |
596 | { | 596 | { |
597 | struct nfs_inode *nfsi = NFS_I(inode); | 597 | struct nfs_inode *nfsi = NFS_I(inode); |
598 | struct nfs_open_context *pos, *ctx = NULL; | 598 | struct nfs_open_context *pos, *ctx = NULL; |
@@ -712,14 +712,7 @@ int nfs_attribute_timeout(struct inode *inode) | |||
712 | 712 | ||
713 | if (nfs_have_delegation(inode, FMODE_READ)) | 713 | if (nfs_have_delegation(inode, FMODE_READ)) |
714 | return 0; | 714 | return 0; |
715 | /* | 715 | return !time_in_range_open(jiffies, nfsi->read_cache_jiffies, nfsi->read_cache_jiffies + nfsi->attrtimeo); |
716 | * Special case: if the attribute timeout is set to 0, then always | ||
717 | * treat the cache as having expired (unless holding | ||
718 | * a delegation). | ||
719 | */ | ||
720 | if (nfsi->attrtimeo == 0) | ||
721 | return 1; | ||
722 | return !time_in_range(jiffies, nfsi->read_cache_jiffies, nfsi->read_cache_jiffies + nfsi->attrtimeo); | ||
723 | } | 716 | } |
724 | 717 | ||
725 | /** | 718 | /** |
@@ -1182,7 +1175,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) | |||
1182 | nfsi->attrtimeo_timestamp = now; | 1175 | nfsi->attrtimeo_timestamp = now; |
1183 | nfsi->attr_gencount = nfs_inc_attr_generation_counter(); | 1176 | nfsi->attr_gencount = nfs_inc_attr_generation_counter(); |
1184 | } else { | 1177 | } else { |
1185 | if (!time_in_range(now, nfsi->attrtimeo_timestamp, nfsi->attrtimeo_timestamp + nfsi->attrtimeo)) { | 1178 | if (!time_in_range_open(now, nfsi->attrtimeo_timestamp, nfsi->attrtimeo_timestamp + nfsi->attrtimeo)) { |
1186 | if ((nfsi->attrtimeo <<= 1) > NFS_MAXATTRTIMEO(inode)) | 1179 | if ((nfsi->attrtimeo <<= 1) > NFS_MAXATTRTIMEO(inode)) |
1187 | nfsi->attrtimeo = NFS_MAXATTRTIMEO(inode); | 1180 | nfsi->attrtimeo = NFS_MAXATTRTIMEO(inode); |
1188 | nfsi->attrtimeo_timestamp = now; | 1181 | nfsi->attrtimeo_timestamp = now; |