aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nfs_fs.h')
-rw-r--r--include/linux/nfs_fs.h27
1 files changed, 23 insertions, 4 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index c71227dd4389..0a1740b2532e 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -16,8 +16,6 @@
16#include <linux/rwsem.h> 16#include <linux/rwsem.h>
17#include <linux/wait.h> 17#include <linux/wait.h>
18 18
19#include <linux/nfs_fs_sb.h>
20
21#include <linux/sunrpc/debug.h> 19#include <linux/sunrpc/debug.h>
22#include <linux/sunrpc/auth.h> 20#include <linux/sunrpc/auth.h>
23#include <linux/sunrpc/clnt.h> 21#include <linux/sunrpc/clnt.h>
@@ -27,6 +25,9 @@
27#include <linux/nfs3.h> 25#include <linux/nfs3.h>
28#include <linux/nfs4.h> 26#include <linux/nfs4.h>
29#include <linux/nfs_xdr.h> 27#include <linux/nfs_xdr.h>
28
29#include <linux/nfs_fs_sb.h>
30
30#include <linux/rwsem.h> 31#include <linux/rwsem.h>
31#include <linux/mempool.h> 32#include <linux/mempool.h>
32 33
@@ -61,6 +62,7 @@
61#define FLUSH_LOWPRI 8 /* low priority background flush */ 62#define FLUSH_LOWPRI 8 /* low priority background flush */
62#define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */ 63#define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */
63#define FLUSH_NOCOMMIT 32 /* Don't send the NFSv3/v4 COMMIT */ 64#define FLUSH_NOCOMMIT 32 /* Don't send the NFSv3/v4 COMMIT */
65#define FLUSH_INVALIDATE 64 /* Invalidate the page cache */
64 66
65#ifdef __KERNEL__ 67#ifdef __KERNEL__
66 68
@@ -234,8 +236,12 @@ static inline int nfs_caches_unstable(struct inode *inode)
234 236
235static inline void nfs_mark_for_revalidate(struct inode *inode) 237static inline void nfs_mark_for_revalidate(struct inode *inode)
236{ 238{
239 struct nfs_inode *nfsi = NFS_I(inode);
240
237 spin_lock(&inode->i_lock); 241 spin_lock(&inode->i_lock);
238 NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; 242 nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS;
243 if (S_ISDIR(inode->i_mode))
244 nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA;
239 spin_unlock(&inode->i_lock); 245 spin_unlock(&inode->i_lock);
240} 246}
241 247
@@ -297,7 +303,7 @@ extern int nfs_release(struct inode *, struct file *);
297extern int nfs_attribute_timeout(struct inode *inode); 303extern int nfs_attribute_timeout(struct inode *inode);
298extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode); 304extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode);
299extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *); 305extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *);
300extern void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); 306extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping);
301extern int nfs_setattr(struct dentry *, struct iattr *); 307extern int nfs_setattr(struct dentry *, struct iattr *);
302extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); 308extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr);
303extern void nfs_begin_attr_update(struct inode *); 309extern void nfs_begin_attr_update(struct inode *);
@@ -307,6 +313,10 @@ extern void nfs_end_data_update(struct inode *);
307extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); 313extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx);
308extern void put_nfs_open_context(struct nfs_open_context *ctx); 314extern void put_nfs_open_context(struct nfs_open_context *ctx);
309extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); 315extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode);
316extern struct vfsmount *nfs_do_submount(const struct vfsmount *mnt_parent,
317 const struct dentry *dentry,
318 struct nfs_fh *fh,
319 struct nfs_fattr *fattr);
310 320
311/* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ 321/* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */
312extern u32 root_nfs_parse_addr(char *name); /*__init*/ 322extern u32 root_nfs_parse_addr(char *name); /*__init*/
@@ -393,6 +403,15 @@ extern void nfs_unregister_sysctl(void);
393#endif 403#endif
394 404
395/* 405/*
406 * linux/fs/nfs/namespace.c
407 */
408extern struct list_head nfs_automount_list;
409extern struct inode_operations nfs_mountpoint_inode_operations;
410extern struct inode_operations nfs_referral_inode_operations;
411extern int nfs_mountpoint_expiry_timeout;
412extern void nfs_release_automount_timer(void);
413
414/*
396 * linux/fs/nfs/unlink.c 415 * linux/fs/nfs/unlink.c
397 */ 416 */
398extern int nfs_async_unlink(struct dentry *); 417extern int nfs_async_unlink(struct dentry *);