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 do beleive that ext4 has the same problem (the issue reported with > the lazy inode init background thread), and I can see that any other > filesystem that can make modifications via internal triggers will > see the same problem - freeze doesn't block them any more... Yes, I'll have to audit filesystem internal threads. I forgot about these in the first round. Most of them shouldn't have anything to do because the filesystem is clean but there are exceptions as ext4 lazyinit has shown. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs