aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_super.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-22 20:32:27 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-22 20:32:27 -0400
commit5fe3a5ae5c09d53b2b3c7a971e1d87ab3a747055 (patch)
tree1e0d3e10c83e456a1678c4e01acb5ff624129202 /fs/xfs/linux-2.6/xfs_super.c
parent0fc0531e0a2174377a86fd6953ecaa00287d8f70 (diff)
parent39dc948c6921169e13224a97fa53188922acfde8 (diff)
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
* 'for-linus' of git://oss.sgi.com/xfs/xfs: (36 commits) xfs: semaphore cleanup xfs: Extend project quotas to support 32bit project ids xfs: remove xfs_buf wrappers xfs: remove xfs_cred.h xfs: remove xfs_globals.h xfs: remove xfs_version.h xfs: remove xfs_refcache.h xfs: fix the xfs_trans_committed xfs: remove unused t_callback field in struct xfs_trans xfs: fix bogus m_maxagi check in xfs_iget xfs: do not use xfs_mod_incore_sb_batch for per-cpu counters xfs: do not use xfs_mod_incore_sb for per-cpu counters xfs: remove XFS_MOUNT_NO_PERCPU_SB xfs: pack xfs_buf structure more tightly xfs: convert buffer cache hash to rbtree xfs: serialise inode reclaim within an AG xfs: batch inode reclaim lookup xfs: implement batched inode lookups for AG walking xfs: split out inode walk inode grabbing xfs: split inode AG walking into separate code for reclaim ...
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_super.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c24
1 files changed, 11 insertions, 13 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 08fd3102128c..ab31ce5aeaf9 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -44,7 +44,6 @@
44#include "xfs_buf_item.h" 44#include "xfs_buf_item.h"
45#include "xfs_utils.h" 45#include "xfs_utils.h"
46#include "xfs_vnodeops.h" 46#include "xfs_vnodeops.h"
47#include "xfs_version.h"
48#include "xfs_log_priv.h" 47#include "xfs_log_priv.h"
49#include "xfs_trans_priv.h" 48#include "xfs_trans_priv.h"
50#include "xfs_filestream.h" 49#include "xfs_filestream.h"
@@ -645,7 +644,7 @@ xfs_barrier_test(
645 XFS_BUF_ORDERED(sbp); 644 XFS_BUF_ORDERED(sbp);
646 645
647 xfsbdstrat(mp, sbp); 646 xfsbdstrat(mp, sbp);
648 error = xfs_iowait(sbp); 647 error = xfs_buf_iowait(sbp);
649 648
650 /* 649 /*
651 * Clear all the flags we set and possible error state in the 650 * Clear all the flags we set and possible error state in the
@@ -757,18 +756,20 @@ xfs_open_devices(
757 * Setup xfs_mount buffer target pointers 756 * Setup xfs_mount buffer target pointers
758 */ 757 */
759 error = ENOMEM; 758 error = ENOMEM;
760 mp->m_ddev_targp = xfs_alloc_buftarg(ddev, 0, mp->m_fsname); 759 mp->m_ddev_targp = xfs_alloc_buftarg(mp, ddev, 0, mp->m_fsname);
761 if (!mp->m_ddev_targp) 760 if (!mp->m_ddev_targp)
762 goto out_close_rtdev; 761 goto out_close_rtdev;
763 762
764 if (rtdev) { 763 if (rtdev) {
765 mp->m_rtdev_targp = xfs_alloc_buftarg(rtdev, 1, mp->m_fsname); 764 mp->m_rtdev_targp = xfs_alloc_buftarg(mp, rtdev, 1,
765 mp->m_fsname);
766 if (!mp->m_rtdev_targp) 766 if (!mp->m_rtdev_targp)
767 goto out_free_ddev_targ; 767 goto out_free_ddev_targ;
768 } 768 }
769 769
770 if (logdev && logdev != ddev) { 770 if (logdev && logdev != ddev) {
771 mp->m_logdev_targp = xfs_alloc_buftarg(logdev, 1, mp->m_fsname); 771 mp->m_logdev_targp = xfs_alloc_buftarg(mp, logdev, 1,
772 mp->m_fsname);
772 if (!mp->m_logdev_targp) 773 if (!mp->m_logdev_targp)
773 goto out_free_rtdev_targ; 774 goto out_free_rtdev_targ;
774 } else { 775 } else {
@@ -971,12 +972,7 @@ xfs_fs_inode_init_once(
971 972
972/* 973/*
973 * Dirty the XFS inode when mark_inode_dirty_sync() is called so that 974 * Dirty the XFS inode when mark_inode_dirty_sync() is called so that
974 * we catch unlogged VFS level updates to the inode. Care must be taken 975 * we catch unlogged VFS level updates to the inode.
975 * here - the transaction code calls mark_inode_dirty_sync() to mark the
976 * VFS inode dirty in a transaction and clears the i_update_core field;
977 * it must clear the field after calling mark_inode_dirty_sync() to
978 * correctly indicate that the dirty state has been propagated into the
979 * inode log item.
980 * 976 *
981 * We need the barrier() to maintain correct ordering between unlogged 977 * We need the barrier() to maintain correct ordering between unlogged
982 * updates and the transaction commit code that clears the i_update_core 978 * updates and the transaction commit code that clears the i_update_core
@@ -1520,8 +1516,9 @@ xfs_fs_fill_super(
1520 if (error) 1516 if (error)
1521 goto out_free_fsname; 1517 goto out_free_fsname;
1522 1518
1523 if (xfs_icsb_init_counters(mp)) 1519 error = xfs_icsb_init_counters(mp);
1524 mp->m_flags |= XFS_MOUNT_NO_PERCPU_SB; 1520 if (error)
1521 goto out_close_devices;
1525 1522
1526 error = xfs_readsb(mp, flags); 1523 error = xfs_readsb(mp, flags);
1527 if (error) 1524 if (error)
@@ -1582,6 +1579,7 @@ xfs_fs_fill_super(
1582 xfs_freesb(mp); 1579 xfs_freesb(mp);
1583 out_destroy_counters: 1580 out_destroy_counters:
1584 xfs_icsb_destroy_counters(mp); 1581 xfs_icsb_destroy_counters(mp);
1582 out_close_devices:
1585 xfs_close_devices(mp); 1583 xfs_close_devices(mp);
1586 out_free_fsname: 1584 out_free_fsname:
1587 xfs_free_fsname(mp); 1585 xfs_free_fsname(mp);