[lkml]   [2012]   [Mar]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    SubjectRe: [PATCH 11/19] xfs: Convert to new freezing code
    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...


    Dave Chinner

     \ /
      Last update: 2012-03-09 00:23    [W:0.020 / U:110.804 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site