On Fri 09-03-12 10:20:41, Dave Chinner wrote: > On Mon, Mar 05, 2012 at 05:01:09PM +0100, Jan Kara wrote: > > 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. > .... > > 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 <jack@xxxxxxx> SUSE Labs, CR _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs