[XFS] Fix some build fallout from atime changes.
authorNathan Scott <nathans@sgi.com>
Wed, 11 Jan 2006 10:03:04 +0000 (21:03 +1100)
committerNathan Scott <nathans@sgi.com>
Wed, 11 Jan 2006 10:03:04 +0000 (21:03 +1100)
SGI-PV: 946679
SGI-Modid: xfs-linux-melb:xfs-kern:24899a

Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/linux-2.6/xfs_vnode.h
fs/xfs/xfs_itable.c
fs/xfs/xfs_vnodeops.c

index f2bbb32..0fe2419 100644 (file)
@@ -565,6 +565,25 @@ static inline int VN_BAD(struct vnode *vp)
        return is_bad_inode(LINVFS_GET_IP(vp));
 }
 
+/*
+ * Extracting atime values in various formats
+ */
+static inline void vn_atime_to_bstime(struct vnode *vp, xfs_bstime_t *bs_atime)
+{
+       bs_atime->tv_sec = vp->v_inode.i_atime.tv_sec;
+       bs_atime->tv_nsec = vp->v_inode.i_atime.tv_nsec;
+}
+
+static inline void vn_atime_to_timespec(struct vnode *vp, struct timespec *ts)
+{
+       *ts = vp->v_inode.i_atime;
+}
+
+static inline void vn_atime_to_time_t(struct vnode *vp, time_t *tt)
+{
+       *tt = vp->v_inode.i_atime.tv_sec;
+}
+
 /*
  * Some useful predicates.
  */
index 41f50e7..c59450e 100644 (file)
@@ -86,9 +86,7 @@ xfs_bulkstat_one_iget(
        buf->bs_uid = dic->di_uid;
        buf->bs_gid = dic->di_gid;
        buf->bs_size = dic->di_size;
-       /* atime is only kept uptodate in the Linux inode */
-       buf->bs_atime.tv_sec = vp->v_inode.i_atime.tv_sec;
-       buf->bs_atime.tv_nsec = vp->v_inode.i_atime.tv_nsec;
+       vn_atime_to_bstime(vp, &buf->bs_atime);
        buf->bs_mtime.tv_sec = dic->di_mtime.t_sec;
        buf->bs_mtime.tv_nsec = dic->di_mtime.t_nsec;
        buf->bs_ctime.tv_sec = dic->di_ctime.t_sec;
index b12fcfc..f891634 100644 (file)
@@ -182,8 +182,7 @@ xfs_getattr(
                break;
        }
 
-       /* atime is only kept uptodate in the Linux inode */
-       vap->va_atime = vp->v_inode.i_atime;
+       vn_atime_to_timespec(vp, &vap->va_atime);
        vap->va_mtime.tv_sec = ip->i_d.di_mtime.t_sec;
        vap->va_mtime.tv_nsec = ip->i_d.di_mtime.t_nsec;
        vap->va_ctime.tv_sec = ip->i_d.di_ctime.t_sec;