From: Dave Chinner <david@fromorbit.com>
To: Jan Kara <jack@suse.cz>
Cc: sandeen@redhat.com, Alex Elder <elder@kernel.org>,
Kamal Mostafa <kamal@canonical.com>,
LKML <linux-kernel@vger.kernel.org>,
xfs@oss.sgi.com, Christoph Hellwig <hch@infradead.org>,
Ben Myers <bpm@sgi.com>, Al Viro <viro@ZenIV.linux.org.uk>,
dchinner@redhat.com, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 11/19] xfs: Convert to new freezing code
Date: Fri, 9 Mar 2012 10:20:41 +1100 [thread overview]
Message-ID: <20120308232041.GU3592@dastard> (raw)
In-Reply-To: <1330963277-26336-12-git-send-email-jack@suse.cz>
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...
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
WARNING: multiple messages have this Message-ID (diff)
From: Dave Chinner <david@fromorbit.com>
To: Jan Kara <jack@suse.cz>
Cc: LKML <linux-kernel@vger.kernel.org>,
linux-fsdevel@vger.kernel.org, Al Viro <viro@ZenIV.linux.org.uk>,
Christoph Hellwig <hch@infradead.org>,
dchinner@redhat.com, sandeen@redhat.com,
Kamal Mostafa <kamal@canonical.com>, Ben Myers <bpm@sgi.com>,
Alex Elder <elder@kernel.org>,
xfs@oss.sgi.com
Subject: Re: [PATCH 11/19] xfs: Convert to new freezing code
Date: Fri, 9 Mar 2012 10:20:41 +1100 [thread overview]
Message-ID: <20120308232041.GU3592@dastard> (raw)
In-Reply-To: <1330963277-26336-12-git-send-email-jack@suse.cz>
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...
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2012-03-08 23:20 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-05 16:00 [Cluster-devel] [PATCH 00/19] Fix filesystem freezing deadlocks Jan Kara
2012-03-05 16:01 ` [Ocfs2-devel] " Jan Kara
2012-03-05 16:00 ` Jan Kara
2012-03-05 16:00 ` Jan Kara
2012-03-05 16:00 ` Jan Kara
2012-03-05 16:00 ` [PATCH 01/19] mm: Make default vm_ops provide ->page_mkwrite handler Jan Kara
2012-03-23 22:45 ` Andrew Morton
2012-03-27 7:55 ` Jan Kara
2012-03-27 21:38 ` Andrew Morton
2012-03-27 22:08 ` Jan Kara
2012-03-27 22:45 ` Dave Chinner
2012-03-28 9:48 ` Jan Kara
2012-03-05 16:01 ` [PATCH 02/19] fs: Push mnt_want_write() outside of i_mutex Jan Kara
2012-03-05 16:01 ` [Ocfs2-devel] " Jan Kara
2012-03-05 16:01 ` [PATCH 03/19] fat: " Jan Kara
2012-03-05 16:01 ` [PATCH 04/19] btrfs: " Jan Kara
2012-03-05 16:01 ` [PATCH 05/19] nfsd: " Jan Kara
2012-03-05 16:01 ` Jan Kara
2012-03-05 16:01 ` [PATCH 06/19] fs: Improve filesystem freezing handling Jan Kara
2012-03-05 16:01 ` [PATCH 07/19] fs: Add freezing handling to mnt_want_write() / mnt_drop_write() Jan Kara
2012-03-05 16:01 ` [PATCH 08/19] fs: Skip atime update on frozen filesystem Jan Kara
2012-03-05 16:01 ` [PATCH 09/19] fs: Protect write paths by sb_start_write - sb_end_write Jan Kara
2012-03-05 16:01 ` [PATCH 10/19] ext4: Convert to new freezing mechanism Jan Kara
2012-03-07 22:32 ` Kamal Mostafa
2012-03-08 9:05 ` Jan Kara
2012-03-05 16:01 ` [PATCH 11/19] xfs: Convert to new freezing code Jan Kara
2012-03-05 16:01 ` Jan Kara
2012-03-08 23:20 ` Dave Chinner [this message]
2012-03-08 23:20 ` Dave Chinner
2012-03-09 8:23 ` Jan Kara
2012-03-09 8:23 ` Jan Kara
2012-03-09 14:22 ` Jan Kara
2012-03-09 14:22 ` Jan Kara
2012-03-11 22:45 ` Dave Chinner
2012-03-11 22:45 ` Dave Chinner
2012-03-12 17:55 ` Jan Kara
2012-03-12 17:55 ` Jan Kara
2012-03-12 23:48 ` Dave Chinner
2012-03-12 23:48 ` Dave Chinner
2012-03-13 21:30 ` Jan Kara
2012-03-13 21:30 ` Jan Kara
2012-03-14 3:00 ` Dave Chinner
2012-03-14 3:00 ` Dave Chinner
2012-03-05 16:01 ` [PATCH 12/19] ocfs2: Convert to new freezing mechanism Jan Kara
2012-03-05 16:01 ` [Ocfs2-devel] " Jan Kara
2012-03-05 16:01 ` [Cluster-devel] [PATCH 13/19] gfs2: " Jan Kara
2012-03-05 16:01 ` Jan Kara
2012-03-05 16:01 ` Jan Kara
[not found] ` <1330963277-26336-1-git-send-email-jack-AlSwsSmVLrQ@public.gmane.org>
2012-03-05 16:01 ` [PATCH 14/19] fuse: " Jan Kara
2012-03-05 16:01 ` Jan Kara
2012-03-05 16:01 ` [PATCH 15/19] ntfs: " Jan Kara
2012-03-05 16:01 ` [PATCH 16/19] nilfs2: " Jan Kara
2012-03-05 16:01 ` [PATCH 17/19] btrfs: " Jan Kara
2012-03-05 16:01 ` [PATCH 18/19] fs: Remove old " Jan Kara
2012-03-05 16:01 ` [PATCH 19/19] fs: Refuse to freeze filesystem with open but unlinked files Jan Kara
2012-03-11 20:22 ` [PATCH 00/19] Fix filesystem freezing deadlocks Kamal Mostafa
2012-03-11 20:23 ` [Ocfs2-devel] " Kamal Mostafa
2012-03-11 20:22 ` Kamal Mostafa
-- strict thread matches above, loose matches on Subject: below --
2012-03-28 23:43 [Cluster-devel] [PATCH 00/19 v4] " Jan Kara
2012-03-28 23:43 ` [PATCH 11/19] xfs: Convert to new freezing code Jan Kara
2012-03-28 23:43 ` Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120308232041.GU3592@dastard \
--to=david@fromorbit.com \
--cc=bpm@sgi.com \
--cc=dchinner@redhat.com \
--cc=elder@kernel.org \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=kamal@canonical.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=sandeen@redhat.com \
--cc=viro@ZenIV.linux.org.uk \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.