lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <961aa3350710050620q42eb6192wdacce1510cc76a4b@mail.gmail.com> Date: Fri, 5 Oct 2007 22:20:55 +0900 From: "Akinobu Mita" <akinobu.mita@...il.com> To: "Christoph Hellwig" <hch@....de> Cc: linux-kernel@...r.kernel.org, xfs@....sgi.com, "Tim Shimmin" <xfs-masters@....sgi.com>, "David Chinner" <dgc@....com> Subject: Re: [PATCH] update sb->s_frozen when freezing read-only mounted device, too 2007/10/5, Christoph Hellwig <hch@....de>: > On Sat, Sep 29, 2007 at 07:09:12PM +0900, Akinobu Mita wrote: > > 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. > > I think this fix is valid, but it might be a tad cleaner to just > set s_frozen to SB_FREEZE_TRANS directly in a separate branch, ala: It looks cleaner than mine. I'll resubmit it. > struct super_block *freeze_bdev(struct block_device *bdev) > { > struct super_block *sb; > > down(&bdev->bd_mount_sem); > sb = get_super(bdev); > if (!sb) > goto out; > > if (sb->s_flags & MS_RDONLY) { > sb->s_frozen = SB_FREEZE_TRANS; > smp_wmb(); > goto out; > } > > sb->s_frozen = SB_FREEZE_WRITE; > smp_wmb(); > > __fsync_super(sb); > > sb->s_frozen = SB_FREEZE_TRANS > smp_wmb(); > > sync_blockdev(sb->s_bdev); > > if (sb->s_op->write_super_lockfs) > sb->s_op->write_super_lockfs(sb); > > out: > sync_blockdev(bdev); > return sb; /* thaw_bdev releases s->s_umount and bd_mount_sem */ > } > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists