]> err.no Git - linux-2.6/commitdiff
[XFS] Cleanup a missed porting conversion, and freezing.
authorNathan Scott <nathans@sgi.com>
Fri, 9 Jun 2006 07:11:55 +0000 (17:11 +1000)
committerNathan Scott <nathans@sgi.com>
Fri, 9 Jun 2006 07:11:55 +0000 (17:11 +1000)
SGI-PV: 953338
SGI-Modid: xfs-linux-melb:xfs-kern:26109a

Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/linux-2.6/xfs_lrw.c
fs/xfs/linux-2.6/xfs_vfs.h
fs/xfs/xfs_log.c
fs/xfs/xfs_trans.c

index 8696096f8d2285800eff03fe51dab073e2b9e8df..3e76c5c9dda1ad1cc1a508ca7c738e6aca9fa89a 100644 (file)
@@ -668,11 +668,11 @@ xfs_write(
        io = &xip->i_iocore;
        mp = io->io_mount;
 
+       vfs_wait_for_freeze(vp->v_vfsp, SB_FREEZE_WRITE);
+
        if (XFS_FORCED_SHUTDOWN(mp))
                return -EIO;
 
-       fs_check_frozen(vp->v_vfsp, SB_FREEZE_WRITE);
-
        if (ioflags & IO_ISDIRECT) {
                xfs_buftarg_t   *target =
                        (xip->i_d.di_flags & XFS_DIFLAG_REALTIME) ?
index 7b88eeae0f267df7a1c17d0af9f1103e3afec514..91fc2c4b3353f1f4ea96ed51de25ade3f4304f76 100644 (file)
@@ -190,6 +190,9 @@ extern void vfs_init_vnode(bhv_desc_t *, struct bhv_vnode *, bhv_desc_t *, int);
 extern void vfs_force_shutdown(bhv_desc_t *, int, char *, int);
 extern void vfs_freeze(bhv_desc_t *);
 
+#define vfs_test_for_freeze(vfs)       ((vfs)->vfs_super->s_frozen)
+#define vfs_wait_for_freeze(vfs,l)     vfs_check_frozen((vfs)->vfs_super, (l))
 typedef struct bhv_module_vfsops {
        struct bhv_vfsops       bhv_common;
        void *                  bhv_custom;
@@ -211,8 +214,4 @@ extern void bhv_insert_all_vfsops(struct bhv_vfs *);
 extern void bhv_remove_all_vfsops(struct bhv_vfs *, int);
 extern void bhv_remove_vfsops(struct bhv_vfs *, int);
 
-#define fs_frozen(vfsp)                ((vfsp)->vfs_super->s_frozen)
-#define fs_check_frozen(vfsp, level) \
-       vfs_check_frozen(vfsp->vfs_super, level);
-
 #endif /* __XFS_VFS_H__ */
index 9f70ab3e0983d01d654942819e8128f271ace2fe..95d679cd4e752152db569fe43d68e13014774f54 100644 (file)
@@ -817,7 +817,7 @@ xfs_log_need_covered(xfs_mount_t *mp)
        xlog_t          *log = mp->m_log;
        bhv_vfs_t       *vfsp = XFS_MTOVFS(mp);
 
-       if (fs_frozen(vfsp) || XFS_FORCED_SHUTDOWN(mp) ||
+       if (vfs_test_for_freeze(vfsp) || XFS_FORCED_SHUTDOWN(mp) ||
            (vfsp->vfs_flag & VFS_RDONLY))
                return 0;
 
index 7a99ed3b187f04e8ee689b8dcba346ed0c29db01..39f0b1ed3224d3e0b9ffef3916ebda713b192778 100644 (file)
@@ -236,11 +236,8 @@ xfs_trans_alloc(
        xfs_mount_t     *mp,
        uint            type)
 {
-       fs_check_frozen(XFS_MTOVFS(mp), SB_FREEZE_TRANS);
-       atomic_inc(&mp->m_active_trans);
-
-       return (_xfs_trans_alloc(mp, type));
-
+       vfs_wait_for_freeze(XFS_MTOVFS(mp), SB_FREEZE_TRANS);
+       return _xfs_trans_alloc(mp, type);
 }
 
 xfs_trans_t *
@@ -250,12 +247,9 @@ _xfs_trans_alloc(
 {
        xfs_trans_t     *tp;
 
-       ASSERT(xfs_trans_zone != NULL);
-       tp = kmem_zone_zalloc(xfs_trans_zone, KM_SLEEP);
+       atomic_inc(&mp->m_active_trans);
 
-       /*
-        * Initialize the transaction structure.
-        */
+       tp = kmem_zone_zalloc(xfs_trans_zone, KM_SLEEP);
        tp->t_magic = XFS_TRANS_MAGIC;
        tp->t_type = type;
        tp->t_mountp = mp;
@@ -263,8 +257,7 @@ _xfs_trans_alloc(
        tp->t_busy_free = XFS_LBC_NUM_SLOTS;
        XFS_LIC_INIT(&(tp->t_items));
        XFS_LBC_INIT(&(tp->t_busy));
-
-       return (tp);
+       return tp;
 }
 
 /*