]> nv-tegra.nvidia Code Review - linux-3.10.git/commitdiff
GFS2: Move gfs2_refresh_inode() and friends into glops.c
authorSteven Whitehouse <swhiteho@redhat.com>
Mon, 9 May 2011 12:49:59 +0000 (13:49 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Mon, 9 May 2011 15:44:49 +0000 (16:44 +0100)
Eventually there will only be a single caller of this code, so lets
move it where it can be made static at some future date.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glops.c
fs/gfs2/inode.c

index 7c1b08f63ddb7b7fcb14f4f77df7d762bfffd39d..8ef70f464731eec2e1a707b0bd1dcd12d24aa2f1 100644 (file)
@@ -251,6 +251,119 @@ static int inode_go_demote_ok(const struct gfs2_glock *gl)
        return 1;
 }
 
+/**
+ * gfs2_set_nlink - Set the inode's link count based on on-disk info
+ * @inode: The inode in question
+ * @nlink: The link count
+ *
+ * If the link count has hit zero, it must never be raised, whatever the
+ * on-disk inode might say. When new struct inodes are created the link
+ * count is set to 1, so that we can safely use this test even when reading
+ * in on disk information for the first time.
+ */
+
+static void gfs2_set_nlink(struct inode *inode, u32 nlink)
+{
+       /*
+        * We will need to review setting the nlink count here in the
+        * light of the forthcoming ro bind mount work. This is a reminder
+        * to do that.
+        */
+       if ((inode->i_nlink != nlink) && (inode->i_nlink != 0)) {
+               if (nlink == 0)
+                       clear_nlink(inode);
+               else
+                       inode->i_nlink = nlink;
+       }
+}
+
+static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
+{
+       const struct gfs2_dinode *str = buf;
+       struct timespec atime;
+       u16 height, depth;
+
+       if (unlikely(ip->i_no_addr != be64_to_cpu(str->di_num.no_addr)))
+               goto corrupt;
+       ip->i_no_formal_ino = be64_to_cpu(str->di_num.no_formal_ino);
+       ip->i_inode.i_mode = be32_to_cpu(str->di_mode);
+       ip->i_inode.i_rdev = 0;
+       switch (ip->i_inode.i_mode & S_IFMT) {
+       case S_IFBLK:
+       case S_IFCHR:
+               ip->i_inode.i_rdev = MKDEV(be32_to_cpu(str->di_major),
+                                          be32_to_cpu(str->di_minor));
+               break;
+       };
+
+       ip->i_inode.i_uid = be32_to_cpu(str->di_uid);
+       ip->i_inode.i_gid = be32_to_cpu(str->di_gid);
+       gfs2_set_nlink(&ip->i_inode, be32_to_cpu(str->di_nlink));
+       i_size_write(&ip->i_inode, be64_to_cpu(str->di_size));
+       gfs2_set_inode_blocks(&ip->i_inode, be64_to_cpu(str->di_blocks));
+       atime.tv_sec = be64_to_cpu(str->di_atime);
+       atime.tv_nsec = be32_to_cpu(str->di_atime_nsec);
+       if (timespec_compare(&ip->i_inode.i_atime, &atime) < 0)
+               ip->i_inode.i_atime = atime;
+       ip->i_inode.i_mtime.tv_sec = be64_to_cpu(str->di_mtime);
+       ip->i_inode.i_mtime.tv_nsec = be32_to_cpu(str->di_mtime_nsec);
+       ip->i_inode.i_ctime.tv_sec = be64_to_cpu(str->di_ctime);
+       ip->i_inode.i_ctime.tv_nsec = be32_to_cpu(str->di_ctime_nsec);
+
+       ip->i_goal = be64_to_cpu(str->di_goal_meta);
+       ip->i_generation = be64_to_cpu(str->di_generation);
+
+       ip->i_diskflags = be32_to_cpu(str->di_flags);
+       gfs2_set_inode_flags(&ip->i_inode);
+       height = be16_to_cpu(str->di_height);
+       if (unlikely(height > GFS2_MAX_META_HEIGHT))
+               goto corrupt;
+       ip->i_height = (u8)height;
+
+       depth = be16_to_cpu(str->di_depth);
+       if (unlikely(depth > GFS2_DIR_MAX_DEPTH))
+               goto corrupt;
+       ip->i_depth = (u8)depth;
+       ip->i_entries = be32_to_cpu(str->di_entries);
+
+       ip->i_eattr = be64_to_cpu(str->di_eattr);
+       if (S_ISREG(ip->i_inode.i_mode))
+               gfs2_set_aops(&ip->i_inode);
+
+       return 0;
+corrupt:
+       gfs2_consist_inode(ip);
+       return -EIO;
+}
+
+/**
+ * gfs2_inode_refresh - Refresh the incore copy of the dinode
+ * @ip: The GFS2 inode
+ *
+ * Returns: errno
+ */
+
+int gfs2_inode_refresh(struct gfs2_inode *ip)
+{
+       struct buffer_head *dibh;
+       int error;
+
+       error = gfs2_meta_inode_buffer(ip, &dibh);
+       if (error)
+               return error;
+
+       if (gfs2_metatype_check(GFS2_SB(&ip->i_inode), dibh, GFS2_METATYPE_DI)) {
+               brelse(dibh);
+               return -EIO;
+       }
+
+       error = gfs2_dinode_in(ip, dibh->b_data);
+       brelse(dibh);
+       clear_bit(GIF_INVALID, &ip->i_flags);
+
+       return error;
+}
+
 /**
  * inode_go_lock - operation done after an inode lock is locked by a process
  * @gl: the glock
index 7c2121fe10df45c2918616a88a8adde13d8aa998..5d48baf464577fe431cd49f68168caf0e9516492 100644 (file)
 #include "trans.h"
 #include "util.h"
 
-struct gfs2_inum_range_host {
-       u64 ir_start;
-       u64 ir_length;
-};
-
 struct gfs2_skip_data {
        u64 no_addr;
        int skipped;
@@ -248,118 +243,6 @@ fail_iput:
        goto fail;
 }
 
-/**
- * gfs2_set_nlink - Set the inode's link count based on on-disk info
- * @inode: The inode in question
- * @nlink: The link count
- *
- * If the link count has hit zero, it must never be raised, whatever the
- * on-disk inode might say. When new struct inodes are created the link
- * count is set to 1, so that we can safely use this test even when reading
- * in on disk information for the first time.
- */
-
-static void gfs2_set_nlink(struct inode *inode, u32 nlink)
-{
-       /*
-        * We will need to review setting the nlink count here in the
-        * light of the forthcoming ro bind mount work. This is a reminder
-        * to do that.
-        */
-       if ((inode->i_nlink != nlink) && (inode->i_nlink != 0)) {
-               if (nlink == 0)
-                       clear_nlink(inode);
-               else
-                       inode->i_nlink = nlink;
-       }
-}
-
-static int gfs2_dinode_in(struct gfs2_inode *ip, const void *buf)
-{
-       const struct gfs2_dinode *str = buf;
-       struct timespec atime;
-       u16 height, depth;
-
-       if (unlikely(ip->i_no_addr != be64_to_cpu(str->di_num.no_addr)))
-               goto corrupt;
-       ip->i_no_formal_ino = be64_to_cpu(str->di_num.no_formal_ino);
-       ip->i_inode.i_mode = be32_to_cpu(str->di_mode);
-       ip->i_inode.i_rdev = 0;
-       switch (ip->i_inode.i_mode & S_IFMT) {
-       case S_IFBLK:
-       case S_IFCHR:
-               ip->i_inode.i_rdev = MKDEV(be32_to_cpu(str->di_major),
-                                          be32_to_cpu(str->di_minor));
-               break;
-       };
-
-       ip->i_inode.i_uid = be32_to_cpu(str->di_uid);
-       ip->i_inode.i_gid = be32_to_cpu(str->di_gid);
-       gfs2_set_nlink(&ip->i_inode, be32_to_cpu(str->di_nlink));
-       i_size_write(&ip->i_inode, be64_to_cpu(str->di_size));
-       gfs2_set_inode_blocks(&ip->i_inode, be64_to_cpu(str->di_blocks));
-       atime.tv_sec = be64_to_cpu(str->di_atime);
-       atime.tv_nsec = be32_to_cpu(str->di_atime_nsec);
-       if (timespec_compare(&ip->i_inode.i_atime, &atime) < 0)
-               ip->i_inode.i_atime = atime;
-       ip->i_inode.i_mtime.tv_sec = be64_to_cpu(str->di_mtime);
-       ip->i_inode.i_mtime.tv_nsec = be32_to_cpu(str->di_mtime_nsec);
-       ip->i_inode.i_ctime.tv_sec = be64_to_cpu(str->di_ctime);
-       ip->i_inode.i_ctime.tv_nsec = be32_to_cpu(str->di_ctime_nsec);
-
-       ip->i_goal = be64_to_cpu(str->di_goal_meta);
-       ip->i_generation = be64_to_cpu(str->di_generation);
-
-       ip->i_diskflags = be32_to_cpu(str->di_flags);
-       gfs2_set_inode_flags(&ip->i_inode);
-       height = be16_to_cpu(str->di_height);
-       if (unlikely(height > GFS2_MAX_META_HEIGHT))
-               goto corrupt;
-       ip->i_height = (u8)height;
-
-       depth = be16_to_cpu(str->di_depth);
-       if (unlikely(depth > GFS2_DIR_MAX_DEPTH))
-               goto corrupt;
-       ip->i_depth = (u8)depth;
-       ip->i_entries = be32_to_cpu(str->di_entries);
-
-       ip->i_eattr = be64_to_cpu(str->di_eattr);
-       if (S_ISREG(ip->i_inode.i_mode))
-               gfs2_set_aops(&ip->i_inode);
-
-       return 0;
-corrupt:
-       gfs2_consist_inode(ip);
-       return -EIO;
-}
-
-/**
- * gfs2_inode_refresh - Refresh the incore copy of the dinode
- * @ip: The GFS2 inode
- *
- * Returns: errno
- */
-
-int gfs2_inode_refresh(struct gfs2_inode *ip)
-{
-       struct buffer_head *dibh;
-       int error;
-
-       error = gfs2_meta_inode_buffer(ip, &dibh);
-       if (error)
-               return error;
-
-       if (gfs2_metatype_check(GFS2_SB(&ip->i_inode), dibh, GFS2_METATYPE_DI)) {
-               brelse(dibh);
-               return -EIO;
-       }
-
-       error = gfs2_dinode_in(ip, dibh->b_data);
-       brelse(dibh);
-       clear_bit(GIF_INVALID, &ip->i_flags);
-
-       return error;
-}
 
 struct inode *gfs2_lookup_simple(struct inode *dip, const char *name)
 {