| To: | linux-kernel@xxxxxxxxxxxxxxx |
|---|---|
| Subject: | [xfs-masters] [PATCH] update sb->s_frozen when freezing read-only mounted device, too |
| From: | Akinobu Mita <akinobu.mita@xxxxxxxxx> |
| Date: | Sat, 29 Sep 2007 19:09:12 +0900 |
| Cc: | xfs@xxxxxxxxxxx, Tim Shimmin <xfs-masters@xxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxx> |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:date:from:to:cc:subject:message-id:mail-followup-to:mime-version:content-type:content-disposition:user-agent; bh=qWj4qXIgCF53XuQ/HFV2F4/z47EBN3sG5ySoPgtkhmE=; b=RFT/i0KHgkBnX9/qiynX8UEijTbOyKe7MW4ShRjo09ZYAMQoLqEmY7UngFfzL/8vT7fEII/UZ0yDiCL/krpelS9cwv8ZC67UExztKCcuLvib/rJZFPaHxsB4TTQ5p+fQSAk7/swbR6Q+wHzG+tRbuQl+FLaC4KM06B5HCKPJEE4= |
| Domainkey-signature: | a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:date:from:to:cc:subject:message-id:mail-followup-to:mime-version:content-type:content-disposition:user-agent; b=OL1EkPZ/ECU4KsA0NptE5jRaoZIJ6vzf/kyNx5LjCnC6uF/v5NH7/bFVHtL+ZzEkNrgnDdd6nHRqBJKKJmvhx4SUFJkLvwihbHIbZwwBBdbKBk9FtlqoeISAxenVi1t1x1jSGorXsOzLzj0wjTmAkB5uruopy3/98Dg/TvPgMhI= |
| Mail-followup-to: | Akinobu Mita <akinobu.mita@xxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, Tim Shimmin <xfs-masters@xxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxx> |
| Reply-to: | xfs-masters@xxxxxxxxxxx |
| Sender: | xfs-masters-bounce@xxxxxxxxxxx |
| User-agent: | Mutt/1.4.2.3i |
freeze_bdev() with the device which is mounted as read only
does not change sb->s_frozen from SB_UNFROZEN to SB_FREEZE_TRANS.
Because of this behavior, xfs_freeze can break read-only XFS filesystem.
Because xfs_thaw does nothing for the filesystem whose sb->s_frozen is
SB_UNFROZEN. So freezed readonly XFS filesystem will never be unfreezed.
Then we cannot do any unmount/remount operations for that filesystem.
This patch updates sb->s_frozen when freeze_bdev() is called for read-only
mounted device, too.
Cc: Tim Shimmin <xfs-masters@xxxxxxxxxxx>
Cc: Christoph Hellwig <hch@xxxxxx>
Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
---
fs/buffer.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
Index: 2.6-git/fs/buffer.c
===================================================================
--- 2.6-git.orig/fs/buffer.c
+++ 2.6-git/fs/buffer.c
@@ -190,19 +190,22 @@ struct super_block *freeze_bdev(struct b
down(&bdev->bd_mount_sem);
sb = get_super(bdev);
- if (sb && !(sb->s_flags & MS_RDONLY)) {
+ if (sb) {
sb->s_frozen = SB_FREEZE_WRITE;
smp_wmb();
- __fsync_super(sb);
+ if (!(sb->s_flags & MS_RDONLY))
+ __fsync_super(sb);
sb->s_frozen = SB_FREEZE_TRANS;
smp_wmb();
- sync_blockdev(sb->s_bdev);
+ if (!(sb->s_flags & MS_RDONLY)) {
+ sync_blockdev(sb->s_bdev);
- if (sb->s_op->write_super_lockfs)
- sb->s_op->write_super_lockfs(sb);
+ if (sb->s_op->write_super_lockfs)
+ sb->s_op->write_super_lockfs(sb);
+ }
}
sync_blockdev(bdev);
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [xfs-masters] [Bug 769] New: XFS snapshots does not work with linux LVM, bugzilla-daemon |
|---|---|
| Previous by Thread: | [xfs-masters] [Bug 769] New: XFS snapshots does not work with linux LVM, bugzilla-daemon |
| Indexes: | [Date] [Thread] [Top] [All Lists] |