diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 20:32:27 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-22 20:32:27 -0400 |
commit | 5fe3a5ae5c09d53b2b3c7a971e1d87ab3a747055 (patch) | |
tree | 1e0d3e10c83e456a1678c4e01acb5ff624129202 /fs/xfs/linux-2.6/xfs_super.c | |
parent | 0fc0531e0a2174377a86fd6953ecaa00287d8f70 (diff) | |
parent | 39dc948c6921169e13224a97fa53188922acfde8 (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.c | 24 |
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); |