lkml.org 
[lkml]   [2006]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] freeze_bdev() cleanup
From
Date
Hi,

freeze_bdev() uses a fsync_super() without sync_blockdev(). This patch
makes __fsync_super() for shareing it.

Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
---

fs/buffer.c | 30 +++++++++++-------------------
1 file changed, 11 insertions(+), 19 deletions(-)

diff -puN fs/buffer.c~freeze_bdev-cleanup fs/buffer.c
--- linux-2.6/fs/buffer.c~freeze_bdev-cleanup 2006-03-03 00:24:40.000000000 +0900
+++ linux-2.6-hirofumi/fs/buffer.c 2006-03-03 00:24:40.000000000 +0900
@@ -160,12 +160,7 @@ int sync_blockdev(struct block_device *b
}
EXPORT_SYMBOL(sync_blockdev);

-/*
- * Write out and wait upon all dirty data associated with this
- * superblock. Filesystem data as well as the underlying block
- * device. Takes the superblock lock.
- */
-int fsync_super(struct super_block *sb)
+static void __fsync_super(struct super_block *sb)
{
sync_inodes_sb(sb, 0);
DQUOT_SYNC(sb);
@@ -177,7 +172,16 @@ int fsync_super(struct super_block *sb)
sb->s_op->sync_fs(sb, 1);
sync_blockdev(sb->s_bdev);
sync_inodes_sb(sb, 1);
+}

+/*
+ * Write out and wait upon all dirty data associated with this
+ * superblock. Filesystem data as well as the underlying block
+ * device. Takes the superblock lock.
+ */
+int fsync_super(struct super_block *sb)
+{
+ __fsync_super(sb);
return sync_blockdev(sb->s_bdev);
}

@@ -216,19 +220,7 @@ struct super_block *freeze_bdev(struct b
sb->s_frozen = SB_FREEZE_WRITE;
smp_wmb();

- sync_inodes_sb(sb, 0);
- DQUOT_SYNC(sb);
-
- lock_super(sb);
- if (sb->s_dirt && sb->s_op->write_super)
- sb->s_op->write_super(sb);
- unlock_super(sb);
-
- if (sb->s_op->sync_fs)
- sb->s_op->sync_fs(sb, 1);
-
- sync_blockdev(sb->s_bdev);
- sync_inodes_sb(sb, 1);
+ __fsync_super(sb);

sb->s_frozen = SB_FREEZE_TRANS;
smp_wmb();
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-03-09 17:24    [W:0.043 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site