vserver 1.9.3
[linux-2.6.git] / fs / xfs / linux-2.6 / xfs_vnode.h
index af0b65f..3466465 100644 (file)
@@ -194,7 +194,7 @@ typedef ssize_t (*vop_sendfile_t)(bhv_desc_t *, struct file *,
                                loff_t *, int, size_t, read_actor_t,
                                void *, struct cred *);
 typedef int    (*vop_ioctl_t)(bhv_desc_t *, struct inode *, struct file *,
-                               int, unsigned int, unsigned long);
+                               int, unsigned int, void __user *);
 typedef int    (*vop_getattr_t)(bhv_desc_t *, struct vattr *, int,
                                struct cred *);
 typedef int    (*vop_setattr_t)(bhv_desc_t *, struct vattr *, int,
@@ -532,6 +532,7 @@ typedef struct vnode_map {
 extern void    vn_purge(struct vnode *, vmap_t *);
 extern vnode_t *vn_get(struct vnode *, vmap_t *);
 extern int     vn_revalidate(struct vnode *);
+extern void    vn_revalidate_core(struct vnode *, vattr_t *);
 extern void    vn_remove(struct vnode *);
 
 static inline int vn_count(struct vnode *vp)
@@ -593,6 +594,19 @@ static __inline__ void vn_flagclr(struct vnode *vp, uint flag)
 #define VN_ATIMESET(vp, tvp)   (LINVFS_GET_IP(vp)->i_atime = *(tvp))
 #define VN_CTIMESET(vp, tvp)   (LINVFS_GET_IP(vp)->i_ctime = *(tvp))
 
+/*
+ * Dealing with bad inodes
+ */
+static inline void vn_mark_bad(struct vnode *vp)
+{
+       make_bad_inode(LINVFS_GET_IP(vp));
+}
+
+static inline int VN_BAD(struct vnode *vp)
+{
+       return is_bad_inode(LINVFS_GET_IP(vp));
+}
+
 /*
  * Some useful predicates.
  */