Re: [PATCH 11/19] xfs: Convert to new freezing code
From: Jan Kara <jack@suse.cz>
Date: 2012-03-09 14:22:58
Also in:
linux-fsdevel, lkml
On Fri 09-03-12 10:20:41, Dave Chinner wrote:
On Mon, Mar 05, 2012 at 05:01:09PM +0100, Jan Kara wrote:quoted
Generic code now blocks all writers from standard write paths. So we block all writers coming from ioctl and replace blocking of transactions on frozen filesystem with a debugging check. As a bonus, we get a protection of ioctl against racing remount read-only. We also convert xfs_file_aio_write() to a non-racy freeze protection.....quoted
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 329b06a..6468a2a 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c@@ -577,7 +577,6 @@ xfs_trans_alloc( xfs_mount_t *mp, uint type) { - xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); return _xfs_trans_alloc(mp, type, KM_SLEEP); }So what is there to stop internal XFS threads from starting transactions when the filesystem is frozen? Previously this SB_FREEZE_TRANS would guarantee even internal fucntions would get stopped, but now there's nothing?
I've checked XFS now and I didn't find any work that would be done on a clean filesystem. I found: _xfs_mru_cache_reap() - doesn't seem to do any IO xfs_end_io(), xfs_buf_iodone_work() - shouldn't be a problem either since only reads can happen on a frozen filesystem xfs_reclaim_worker() - everything is clean so no IO should happen xfs_flush_worker() - everything is clean so no IO should happen xfs_sync_worker() - again the same if I understand the code right Honza -- Jan Kara [off-list ref] SUSE Labs, CR _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs