diff options
author | Christoph Hellwig <hch@lst.de> | 2009-06-05 06:26:23 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:36:10 -0400 |
commit | f95022161d23ee661a48af8f280472209f513a67 (patch) | |
tree | 9e7c8455e4126b1dd5586ae973ad16c17653f5b3 /fs | |
parent | 13205fb9260c2377438599ef0773c6a3eaeb0b07 (diff) |
xfs: remove ->write_super and stop maintaining ->s_dirt
the write_super method is used for
(1) writing back the superblock periodically from pdflush
(2) called just before ->sync_fs for data integerity syncs
We don't need (1) because we have our own peridoc writeout through xfssyncd,
and we don't need (2) because xfs_fs_sync_fs performs a proper synchronous
superblock writeout after all other data and metadata has been written out.
Also remove ->s_dirt tracking as it's only used to decide when too call
->write_super.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 12 | ||||
-rw-r--r-- | fs/xfs/xfs_trans.c | 2 |
2 files changed, 0 insertions, 14 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index bb685269f832..08d6bd9a3947 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c | |||
@@ -1104,15 +1104,6 @@ xfs_fs_put_super( | |||
1104 | kfree(mp); | 1104 | kfree(mp); |
1105 | } | 1105 | } |
1106 | 1106 | ||
1107 | STATIC void | ||
1108 | xfs_fs_write_super( | ||
1109 | struct super_block *sb) | ||
1110 | { | ||
1111 | if (!(sb->s_flags & MS_RDONLY)) | ||
1112 | xfs_sync_fsdata(XFS_M(sb), 0); | ||
1113 | sb->s_dirt = 0; | ||
1114 | } | ||
1115 | |||
1116 | STATIC int | 1107 | STATIC int |
1117 | xfs_fs_sync_super( | 1108 | xfs_fs_sync_super( |
1118 | struct super_block *sb, | 1109 | struct super_block *sb, |
@@ -1137,7 +1128,6 @@ xfs_fs_sync_super( | |||
1137 | error = xfs_quiesce_data(mp); | 1128 | error = xfs_quiesce_data(mp); |
1138 | else | 1129 | else |
1139 | error = xfs_sync_fsdata(mp, 0); | 1130 | error = xfs_sync_fsdata(mp, 0); |
1140 | sb->s_dirt = 0; | ||
1141 | 1131 | ||
1142 | if (unlikely(laptop_mode)) { | 1132 | if (unlikely(laptop_mode)) { |
1143 | int prev_sync_seq = mp->m_sync_seq; | 1133 | int prev_sync_seq = mp->m_sync_seq; |
@@ -1443,7 +1433,6 @@ xfs_fs_fill_super( | |||
1443 | 1433 | ||
1444 | XFS_SEND_MOUNT(mp, DM_RIGHT_NULL, mtpt, mp->m_fsname); | 1434 | XFS_SEND_MOUNT(mp, DM_RIGHT_NULL, mtpt, mp->m_fsname); |
1445 | 1435 | ||
1446 | sb->s_dirt = 1; | ||
1447 | sb->s_magic = XFS_SB_MAGIC; | 1436 | sb->s_magic = XFS_SB_MAGIC; |
1448 | sb->s_blocksize = mp->m_sb.sb_blocksize; | 1437 | sb->s_blocksize = mp->m_sb.sb_blocksize; |
1449 | sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; | 1438 | sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; |
@@ -1533,7 +1522,6 @@ static struct super_operations xfs_super_operations = { | |||
1533 | .write_inode = xfs_fs_write_inode, | 1522 | .write_inode = xfs_fs_write_inode, |
1534 | .clear_inode = xfs_fs_clear_inode, | 1523 | .clear_inode = xfs_fs_clear_inode, |
1535 | .put_super = xfs_fs_put_super, | 1524 | .put_super = xfs_fs_put_super, |
1536 | .write_super = xfs_fs_write_super, | ||
1537 | .sync_fs = xfs_fs_sync_super, | 1525 | .sync_fs = xfs_fs_sync_super, |
1538 | .freeze_fs = xfs_fs_freeze, | 1526 | .freeze_fs = xfs_fs_freeze, |
1539 | .statfs = xfs_fs_statfs, | 1527 | .statfs = xfs_fs_statfs, |
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 8570b826fedd..bcc39d358ad3 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c | |||
@@ -628,8 +628,6 @@ xfs_trans_apply_sb_deltas( | |||
628 | xfs_trans_log_buf(tp, bp, offsetof(xfs_dsb_t, sb_icount), | 628 | xfs_trans_log_buf(tp, bp, offsetof(xfs_dsb_t, sb_icount), |
629 | offsetof(xfs_dsb_t, sb_frextents) + | 629 | offsetof(xfs_dsb_t, sb_frextents) + |
630 | sizeof(sbp->sb_frextents) - 1); | 630 | sizeof(sbp->sb_frextents) - 1); |
631 | |||
632 | tp->t_mountp->m_super->s_dirt = 1; | ||
633 | } | 631 | } |
634 | 632 | ||
635 | /* | 633 | /* |