Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ce4cfd4f7dde5891d5b3e3c1a28ff7a7b4d36b3
Commit:     0ce4cfd4f7dde5891d5b3e3c1a28ff7a7b4d36b3
Parent:     745f691912b700ac98607b525f3c892204c7f12f
Author:     Christoph Hellwig <[EMAIL PROTECTED]>
AuthorDate: Thu Aug 30 17:20:53 2007 +1000
Committer:  Tim Shimmin <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 11:45:02 2007 +1000

    [XFS] kill the vfs_fsid and vfs_altfsid members in struct bhv_vfs
    
    vfs_altfsid was just a pointer to mp->m_fixedfsid so we can trivially
    replace it with the latter. vfs_fsid also was identical to m_fixedfsid
    through rather obfuscated ways so we can kill it as well and simply its
    only user.
    
    SGI-PV: 969608
    SGI-Modid: xfs-linux-melb:xfs-kern:29506a
    
    Signed-off-by: Christoph Hellwig <[EMAIL PROTECTED]>
    Signed-off-by: David Chinner <[EMAIL PROTECTED]>
    Signed-off-by: Tim Shimmin <[EMAIL PROTECTED]>
---
 fs/xfs/linux-2.6/xfs_ioctl.c |    4 ++--
 fs/xfs/linux-2.6/xfs_vfs.h   |    2 --
 fs/xfs/xfs_error.c           |   20 +++++++-------------
 fs/xfs/xfs_error.h           |    5 ++---
 fs/xfs/xfs_mount.c           |   22 +---------------------
 5 files changed, 12 insertions(+), 41 deletions(-)

diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c
index 4c38e27..c9b0c9e 100644
--- a/fs/xfs/linux-2.6/xfs_ioctl.c
+++ b/fs/xfs/linux-2.6/xfs_ioctl.c
@@ -138,7 +138,7 @@ xfs_find_handle(
        vp = vn_from_inode(inode);
 
        /* now we can grab the fsid */
-       memcpy(&handle.ha_fsid, XFS_MTOVFS(XFS_I(inode)->i_mount)->vfs_altfsid,
+       memcpy(&handle.ha_fsid, XFS_I(inode)->i_mount->m_fixedfsid,
                        sizeof(xfs_fsid_t));
        hsize = sizeof(xfs_fsid_t);
 
@@ -966,7 +966,7 @@ xfs_ioctl(
                if (!capable(CAP_SYS_ADMIN))
                        return -EPERM;
 
-               error = xfs_errortag_clearall(mp);
+               error = xfs_errortag_clearall(mp, 1);
                return -error;
 
        default:
diff --git a/fs/xfs/linux-2.6/xfs_vfs.h b/fs/xfs/linux-2.6/xfs_vfs.h
index 04303cb..943f581 100644
--- a/fs/xfs/linux-2.6/xfs_vfs.h
+++ b/fs/xfs/linux-2.6/xfs_vfs.h
@@ -44,8 +44,6 @@ typedef struct bhv_vfs_sync_work {
 typedef struct bhv_vfs {
        struct xfs_mount        *vfs_mount;
        u_int                   vfs_flag;       /* flags */
-       xfs_fsid_t              vfs_fsid;       /* file system ID */
-       xfs_fsid_t              *vfs_altfsid;   /* An ID fixed for life of FS */
        struct super_block      *vfs_super;     /* generic superblock pointer */
        struct task_struct      *vfs_sync_task; /* generalised sync thread */
        bhv_vfs_sync_work_t     vfs_sync_work;  /* work item for VFS_SYNC */
diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c
index 339f9d4..a4634d9 100644
--- a/fs/xfs/xfs_error.c
+++ b/fs/xfs/xfs_error.c
@@ -133,10 +133,14 @@ xfs_errortag_add(int error_tag, xfs_mount_t *mp)
 }
 
 int
-xfs_errortag_clearall_umount(int64_t fsid, char *fsname, int loud)
+xfs_errortag_clearall(xfs_mount_t *mp, int loud)
 {
-       int i;
+       int64_t fsid;
        int cleared = 0;
+       int i;
+
+       memcpy(&fsid, mp->m_fixedfsid, sizeof(xfs_fsid_t));
+
 
        for (i = 0; i < XFS_NUM_INJECT_ERROR; i++) {
                if ((fsid == 0LL || xfs_etest_fsid[i] == fsid) &&
@@ -155,20 +159,10 @@ xfs_errortag_clearall_umount(int64_t fsid, char *fsname, 
int loud)
        if (loud || cleared)
                cmn_err(CE_WARN,
                        "Cleared all XFS error tags for filesystem \"%s\"",
-                       fsname);
+                       mp->m_fsname);
 
        return 0;
 }
-
-int
-xfs_errortag_clearall(xfs_mount_t *mp)
-{
-       int64_t fsid;
-
-       memcpy(&fsid, mp->m_fixedfsid, sizeof(xfs_fsid_t));
-
-       return xfs_errortag_clearall_umount(fsid, mp->m_fsname, 1);
-}
 #endif /* DEBUG || INDUCE_IO_ERROR */
 
 static void
diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h
index 5599ada..10e9d96 100644
--- a/fs/xfs/xfs_error.h
+++ b/fs/xfs/xfs_error.h
@@ -144,12 +144,11 @@ extern void xfs_error_test_init(void);
 #endif /* __ANSI_CPP__ */
 
 extern int xfs_errortag_add(int error_tag, xfs_mount_t *mp);
-extern int xfs_errortag_clearall(xfs_mount_t *mp);
-extern int xfs_errortag_clearall_umount(int64_t fsid, char *fsname, int loud);
+extern int xfs_errortag_clearall(xfs_mount_t *mp, int loud);
 #else
 #define XFS_TEST_ERROR(expr, mp, tag, rf)      (expr)
 #define xfs_errortag_add(tag, mp)              (ENOSYS)
-#define xfs_errortag_clearall(mp)              (ENOSYS)
+#define xfs_errortag_clearall(mp, loud)                (ENOSYS)
 #endif /* (DEBUG || INDUCE_IO_ERROR) */
 
 /*
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 4f3488a..87bc928 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -875,14 +875,11 @@ xfs_mountfs(
         */
        if ((mfsi_flags & XFS_MFSI_SECOND) == 0 &&
            (mp->m_flags & XFS_MOUNT_NOUUID) == 0) {
-               __uint64_t      ret64;
                if (xfs_uuid_mount(mp)) {
                        error = XFS_ERROR(EINVAL);
                        goto error1;
                }
                uuid_mounted=1;
-               ret64 = uuid_hash64(&sbp->sb_uuid);
-               memcpy(&vfsp->vfs_fsid, &ret64, sizeof(ret64));
        }
 
        /*
@@ -1007,16 +1004,6 @@ xfs_mountfs(
         */
        uuid_getnodeuniq(&sbp->sb_uuid, mp->m_fixedfsid);
 
-       /*
-        *  The vfs structure needs to have a file system independent
-        *  way of checking for the invariant file system ID.  Since it
-        *  can't look at mount structures it has a pointer to the data
-        *  in the mount structure.
-        *
-        *  File systems that don't support user level file handles (i.e.
-        *  all of them except for XFS) will leave vfs_altfsid as NULL.
-        */
-       vfsp->vfs_altfsid = (xfs_fsid_t *)mp->m_fixedfsid;
        mp->m_dmevmask = 0;     /* not persistent; set after each mount */
 
        xfs_dir_mount(mp);
@@ -1206,9 +1193,6 @@ int
 xfs_unmountfs(xfs_mount_t *mp, struct cred *cr)
 {
        struct bhv_vfs  *vfsp = XFS_MTOVFS(mp);
-#if defined(DEBUG) || defined(INDUCE_IO_ERROR)
-       int64_t         fsid;
-#endif
        __uint64_t      resblks;
 
        /*
@@ -1272,11 +1256,7 @@ xfs_unmountfs(xfs_mount_t *mp, struct cred *cr)
                xfs_uuid_unmount(mp);
 
 #if defined(DEBUG) || defined(INDUCE_IO_ERROR)
-       /*
-        * clear all error tags on this filesystem
-        */
-       memcpy(&fsid, &vfsp->vfs_fsid, sizeof(int64_t));
-       xfs_errortag_clearall_umount(fsid, mp->m_fsname, 0);
+       xfs_errortag_clearall(mp, 0);
 #endif
        XFS_IODONE(vfsp);
        xfs_mount_free(mp);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to